오늘 할 일: 끝내주게 숨쉬기
article thumbnail

파이썬은 딕셔너리(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 클래스를 사용하면 무척 편리합니다.