본문 바로가기
IT/Python3

딕셔너리

by 어센트 2020. 9. 19.

자바에서의 HashMap과 동일한 역할을 한다.

  • len(a)

    요소의 개수를 리턴

  • a[key]

    키를 조회하여 리턴

  • a[key] = value

    딕셔너리에 키/값 삽입

  • key in a - 딕셔너리에 키 존재유무 확인

파이썬 3.6+ : 딕셔너리 메모리 사용량 20% 감소

파이썬 3.7+ : 딕셔너리 입력 순서 유지

활용

a = dict()
a = {}
a = {'key1':'value1' , 'key2':'value2'}

a[key3] = value3 
# {'key1':'value1' , 'key2':'value2', 'key3':'value3'}

존재하지 않는 인덱스를 조회한 경우 IndexError가 발생한다.
try를 이용해 예외처리를 해준다.

try:
        print(a['key4'])
except KeyError:
        print('존재하지 않는 키')

'key4' in a를 활용해도된다.

딕셔너리 순회
for k,v in a.items():
    print(k,v)

collections 딕셔너리 모듈

OrderDict 객체

  • collections.OrderedDict()

    항상 입력 순서가 유지되는 딕셔너리

    파이썬 3.7 부터는 내부적으로 입력순서가 유지되록 개선되어서 기본 딕셔너리만 사용해도 가능하다.

defaultdict객체

  • collections.defaultdict()

    조회 시 항상 디폴트 값을 생성해 키 오류를 방지하는 딕셔너리

      a = collections.defaultdict(int)
      a['A'] = 5
      a['C'] += 1 #원래는 키에러가 발생하지만 default가 0을 기준으로 되있기 때문에
      # {'A':5,'C':1}

Counter 객체

  • collections.Counter()

    요소의 값을 키로 하고 개수를 값 형태로 만들어 카운팅하는 딕셔너리

a = [1,2,3,4,5,5,5,6,6]

b = collections.Counter(a)

print(b) # Counter({5: 3,6: 2,1: 1,2: 1,3: 1,4: 1}

b.most_common(2) # 가장 빈도수가 높은 요소 2개를 출력
# [(5,3),(6,2)]

'IT > Python3' 카테고리의 다른 글

파이썬 기본문법  (0) 2021.12.10
파이썬을 이용한 정렬  (0) 2020.09.19
리스트  (1) 2020.09.19
파이썬 is 와 == 의 차이  (0) 2020.09.19
파이썬과 C++ 참조 비교  (0) 2020.09.19