python으로 알고리즘 문제를 풀면 리스트를 사용하는 경우가 많다.
평소에는 append
, pop
정도만 썼는데 알고리즘 문제를 풀 때
가끔 extend
, insert
등을 써야하는 경우가 있어서 이번에 제대로 정리해보려고 한다.
그 전에 리스트 자료형에 대해서도 정리해보자!
원소들이 연속적으로 저장되는 형태의 자료형. 이때 저장되는 요소들이 모두 같은 자료형일 필요는 없다!
a = []
b = list()
[ ]
로 감싸서 나타내며, 안에는 0개 이상의 원소가 저장될 수 있다.[]
로 생성하거나, list()
를 이용해서 생성할 수 있다.c = [10, 20, 30]
d = ['a', 'b', 'cde']
e = [23, 'hello']
f = [0, 'hi', ['a', 1]]
📌 정리
- 리스트는 대괄호로 감싸서 나타내며, 안에는 0개 이상의 원소가 저장될 수 있다.
- 리스트 안에는 어떠한 자료형도 포함시킬 수 있으며, 다양한 타입의 데이터를
동시에 저장할 수 있다.
a.append(x) # a는 리스트
a[len(a):] = [x]
와 동등하다.a = [1, 2, 3]
a.append(4)
print(a) # [1, 2, 3, 4]
a.extend(x) # a는 리스트
a[len(a):] = iterable
와 동등하다.a = [1, 2, 3]
a.extend([4, 5]) # a += [4, 5]와 동일한 연산
print(a) # [1, 2, 3, 4, 5, 6]
a.append([4, 5])
를 하면 [1, 2, 3, [4, 5]]
가 출력된다.append
와 extend
의 차이!)a.insert(i, x) # a는 리스트
i
)는 삽입되는 요소가 갖게 될 인덱스a.insert(0, x)
는 리스트의 처음에 삽입하며, a.insert(len(a), x)
는 a.append(x)
와 동등하다.a = [1, 2, 3]
a.insert(1, 4)
print(a) # [1, 4, 2, 3]
1
번째 위치에 4
를 삽입하라는 뜻이다.a.remove(x) # a는 리스트
x
와 같은 첫 번째 항목을 삭제한다. x
와 일치하는 항목이 없으면 ValueError
를 일으킨다.a = [1, 2, 3]
a.remove(2)
print(a) # [1, 3]
ValueError
발생a = [1, 2, 3]
a.remove(4)
print(a) # ValueError: list.remove(x): x not in list
a.pop(i) # a는 리스트
a.pop()
은 리스트의 마지막 항목을 삭제하고 돌려준다.a = [1, 2, 3, 4]
num1 = a.pop(1) # 1번째 위치에 있는 항목 삭제 & 반환
print(num1) # 2
num2 = a.pop() # 리스트의 마지막 항목 삭제 & 반환
print(num2) # 4
print(a) # [1, 3]
a.clear() # a는 리스트
del[a:]
와 동등하다.a = [1, 2, 3]
a.clear()
print(a) # []
a.index(x, start, end) # a는 리스트
x
와 같은 첫 번째 요소의 인덱스를 돌려준다. (인덱스는 0부터 시작). x
와 일치하는 항목이 없으면 ValueError
를 일으킨다.start
, end
는 선택적 매개변수로, 검색을 리스트의 특정한 서브 시퀀스로 제한하고 싶을 때 사용한다. (즉, 검색 범위를 제한한다는 뜻) 돌려주는 인덱스는 start
인자가 아니라 전체 시퀀스의 시작을 기준으로 한다.a = [1, 2, 3]
idx = a.index(2)
print(idx) # 1
a.count(x) # a는 리스트
x
가 등장하는 횟수를 돌려준다.a = [1, 2, 2, 3]
cnt = a.count(2)
print(cnt) # 2
a.sort() # a는 리스트
자세한 설명은 🔗 여기 참고
a = [6, 3, 4, 8]
a.sort()
print(a) # [3, 4, 6, 8]
a.reverse() # a는 리스트
a = [1, 2, 3]
a.reverse()
print(a) # [3, 2, 1]
a.copy() # a는 리스트
a[:]
와 동등하다.a = [1, 2, 3]
copyList = a.copy()
print(copyList) # [1, 2, 3]
https://wikidocs.net/14
http://tcpschool.com/python/types_list