파이썬은 딕셔너리(Dictionary) 형태로 해시 자료구조를 제공합니다. 딕셔너리는 dict 클래스로 구현되어 있습니다. 해시는
1. 인덱스 값이 숫자가 아니라 문자열, 튜플 등 다른 값이어서 리스트를 쓸 수 없을 때
2. 빠른 접근/탐색이 필요할 때 : 함수 대부분의 시간 복잡도가 O(1)로 아주 빠릅니다.
3. 집계를 할 때 : collections 모듈의 Counter 클래스는 각 원소가 몇 개 있는지 셀 때 매우 유용하게 쓰입니다.
딕셔너리 선언하기
{ } 기호를 사용하거나 dict 함수를 호출하여 빈 딕셔너리를 선언합니다. 또한 key-value 쌍을 가진 딕셔너리를 선언할 수도 있습니다.
딕셔너리로부터 원소 얻기
딕셔너리의 원소를 가져올 때는
1. [] 기호 사용
2. get 메소드 사용 : get(key, x)와 같이 사용, 딕셔너리에 key가 없는 경우 x값을 리턴
딕셔너리를 카운터, 집계 용도로 자주 사용하는데 get 함수는 이때 아주 유용합니다.
딕셔너리의 값 설정하기
딕셔너리에 값을 집어넣거나, 값을 업데이트할 때에는 [] 기호를 사용합니다.
값 지우기
딕셔너리에서 특정 key 값을 지우려면
1. del dict_obj[key] : 딕셔너리에 key가 없다면 keyError를 raise합니다.
2. pop(key[, default]) : key값에 해당하는 value를 리턴합니다. key가 없다면 default를 리턴하고 만약 default를 설정하지 않았다면 keyError를 raise합니다.
조회하기
딕셔너리를 for문을 이용해 조회할 때
1. key로만 순회
2. key, value 동시 순회 - items() 사용
In : 특정 key가 딕셔너리에 있는지 없는지 조회하기
조회 결과는 True 혹은 False로 반환합니다.
추출하기
1. key만 추출 : keys()
2. value만 추출 : values()
3. key-value 쌍 추출 : items()
집계를 위한 클래스 : collections.Counter
어떤 원소 x가 주어진 시퀀스에 몇 번이나 등장하는지 세야할 때, collections 모듈의 Counter 클래스를 사용하면 무척 편리합니다.
'繩鋸木斷水滴石穿 > Python' 카테고리의 다른 글
Pandas 기초 - 데이터 만들기부터 조회까지 (0) | 2020.04.10 |
---|---|
Numpy 기초 튜토리얼 (0) | 2020.04.03 |
[자료구조] 스택, 큐, 덱 (0) | 2020.02.23 |
[자료구조] 힙(heap) (0) | 2020.02.16 |
파이썬의 시작, 자료형 (0) | 2019.07.16 |