[Python 기초] 배열 추가, 삽입, 삭제, 정렬
원소 추가 (append)
append()
메서드에 추가할 원소를 입력한다.
한 개의 원소만 추가할 수 있다.
1
2
3
4
5
6
7
my_list = []
my_list.append(1)
my_list.append(2)
my_list.append(3)
print(my_list)
# [1, 2, 3]
원소 삽입 (insert)
insert(index, item)
메서드에 삽입할 위치의 인덱스와 원소를 입력한다.
1
2
3
4
5
my_list = ['a', 'c']
my_list.insert(1, 'b')
print(my_list)
# ['a', 'b', 'c']
특정 인덱스 추출 (pop)
pop()
메서드에 인덱스를 인자로 전달하면 리스트에서 해당 인덱스의 원소를 제거하고 그 원소를 반환한다.
인자를 전달하지 않으면 마지막 인덱스의 원소를 리스트에서 제거하고 반환한다.
1
2
3
my_list = [1, 2, 3, 4, 5]
my_list.pop(0) # 1
my_list.pop() # 5
연습문제
- 대기시간이 가장 짧은 놀이기구부터 오름차순으로 놀이기구를 탑니다.
- 단, 인덱스 2에 해당하는 놀이기구는 유진이가 꼭 타고 싶어하는 놀이기구이기에 대기시간에 상관없이 가장 먼저 탑니다.
- 인자 : 리스트 queue
- 반환값 : 주어진 조건에 맞게 정렬된 리스트
1
2
3
4
5
6
7
8
9
10
11
# 대기시간이 담긴 리스트가 인자로 주어지면 조건을 만족하도록
# 타야하는 "인덱스"의 순서가 담긴 리스트를 반환하는 함수 neverland()를 작성해봅시다.
def neverland(queue):
q = queue.pop(2)
return [q] + sorted(queue)
# 확인을 위한 코드입니다.
# 대기시간이 담긴 리스트 queue를 자유롭게 수정해보세요!
queue = [30, 10, 20, 50, 40, 60]
print(neverland(queue))
# [20, 10, 30, 40, 50, 60]
특정 원소 삭제 (remove)
remove()
메서드에 삭제할 원소를 입력한다.
중복된 원소가 있는 경우에도 가장 앞에 있는 원소 하나만 삭제한다.
1
2
3
4
my_list = [5, 2, 4, 3, 2, 1]
my_list.remove(2)
print(my_list)
# [5, 4, 3, 2, 1]
원소 개수 새기 (count)
count()
메서드에 조회할 원소를 입력한다.
1
2
my_list = [2, 2, 2, 4, 4]
my_list.count(2) # 3
배열 정렬 (sort)
sort()
메서드는 같은 타입의 원소들로 이루어진 배열을 오름차순으로 정렬한다.
1
2
3
4
5
6
7
8
9
my_list = ['banana', 'apple', 'carrot']
my_list.sort()
print(my_list)
# ['apple', 'banana', 'carrot']
my_list = [5, 4, 3, 2, 10]
my_list.sort()
print(my_list)
# [2, 3, 4, 5, 10]
주의할 점은 sort()
로 정렬한 값은 변수에는 담을 수 없다는 것이다.
1
2
3
4
my_list = [5, 4, 3, 2, 10]
new_list = my_list.sort()
print(new_list)
# None
문자열을 배열로 반환 (split)
문자열에 split(c)
메서드를 사용하면 c를 기준으로 문자열을 쪼개서 배열로 반환한다.
인자를 전달하지 않으면 공백을 기준으로 배열로 반환한다.
1
2
3
my_str = "1/2/3/4/5"
print(my_str.split('/'))
# ['1', '2', '3', '4', '5']
배열을 문자열로 반환 (join)
str.join(list)
메서드를 사용하면 str을 기준으로 리스트를 합쳐서 문자열로 반환한다.
1
2
3
4
my_list = ['a', 'p', 'p', 'l', 'e']
''.join(my_list) # apply
friend = ['Pat', 'Mat']
'&'.join(friend) # Pat&Mat
This post is licensed under CC BY 4.0 by the author.