리스트 : 순서대로 저장하는 시퀸스, 변경 가능한 목록을 말한다. 입력 순서가 유지되며, 내부적으로는 동적 배열로 구현되어 있다.
연산 | 시간복잡도 | 설명 |
len(a) | O(1) | 전체 요소의 개수 리턴 |
a[i] | O(1) | 인덱스의 i의 요소 가져오기 |
a[i:j] | O(k) | i~j 까지 슬라이스 길이만큼 k개의 요소를 가져온다. |
i in a | O(n) | i 요소가 존재하는지 확인한다. 처음부터 순차 탐색하는 경우이다. |
a.count(i) | O(n) | i 요소의 개수를 리턴한다. |
a.index(i) | O(n) | i 요소의 인덱스를 리턴한다. |
a.append(i) | O(1) | 리스트 마지막에 i 요소를 추가한다. |
a.pop() | O(1) | 리스트 마지막 요소를 추출한다. 스택 연산 |
a.pop(0) | O(n) | 리스트 첫번째 요소를 추출한다. 큐의 연산 |
del a[i] | O(n) | i에 따라 다르다. 최악의 경우 O(n) |
a.sort() | O(n log n) | 정렬한다. 팀소트를 사용하며, 최선의 경우 O(n)에서도 실행될 수 있다. |
min(a), max(a) | O(n) | 최솟값/최댓값 계산을 위해서는 전체를 선형탐색 해야한다. |
a.reverse() | O(n) | 리스트를 뒤집는다. 리스트의 입력순서는 유지된다. |
a.insert(3,5) : 특정위치의 인덱스를 지정하여 요소를 추가
A [a:b:c] : 슬라이싱으로 a는 처음 인덱스, b는 끝 인덱스, c는 step으로 a부터 b-1까지의 요소들을 c스탭으로 추출한다.
del a [1] : 1번 인덱스의 값을 삭제 : 인덱스에 해당하는 요소 삭제
a.remove(1): 1 값을 삭제 : 값에 해당하는 요소 삭제
pop(인덱스): 삭제될 값을 리턴하고 삭제가 진행
리스트는 다양한 타입을 동시에 관리할 수 있다.
[1, '안녕', 'True']
딕셔너리 : 키/값 구조로 이루어져 있다. 입력 순서가 유지되며, 내부적으로는 해시 테이블로 구현되어 있다.
연산 | 시간복잡도 | 설명 |
len(a) | O(1) | 요소의 개수를 리턴한다. |
a[key] | O(1) | 키를 조회하여 값을 리턴한다. |
a[key] = value | O(1) | 키/값을 삽입한다. |
key in a | O(1) | 딕셔너리에 키가 존재하는지 확인한다. |
itmes() : 딕셔너리에 있는 키/값을 for 반복문을 통해 각각 꺼내올 수 있다.
for k,v in a.itmes():
print(k,v)
del a ['key1'] : 딕셔너리 키 값 삭제
딕셔너리 모듈
defaultdict 객체
defaultdict 객체는 존재하지 않는 키를 조회할 경우 , 에러 메시지를 출력하지 않고 디폴트 값을 기준으로 해당 키에 대한 딕셔너리 아이템을 생성해준다. collections.defaultdict 클래스를 가진다.
>>> a = collections.defaultdict (자료형)
Counter 객체
Counter 객체는 아이템에 대한 개수를 계산해 딕셔너리로 리턴한다.
>>> c=[1, 2, 3, 4, 5, 5, 5, 6, 6]
>>> b = collections.Counter(c)
>>> b
Counter({5:3, 6:2, 1:1, 2:1, 3:1, 4:1,})
키에는 아이템의 값이 , 값에는 해당 아이템의 개수가 들어간 딕셔너리를 생성한다.
b.most_common() : 가장 빈도 수가 높은 요소를 추출한다.
'책 요약 정리 > 파이썬 알고리즘 인터뷰' 카테고리의 다른 글
7장_ 배열 요약 정리 (0) | 2022.02.16 |
---|---|
6장_문자열 조작 요약 정리 (0) | 2022.02.16 |
4장_빅오,자료형 요약정리 (0) | 2022.02.16 |
3장_파이썬 요약정리 (0) | 2022.02.16 |