[Python] Ordered dict 이란
- Programming/Python 기초
- 2020. 9. 20.
collections 라이브러리의 OrdeOrderedDict 클래스를 알아보겠습니다. python에서 딕셔너리는 key와 value의 쌍으로 이루어진 자료형입니다. ([Python] 딕셔너리: 키(key) 값(value) 바꾸기(swap) 참조) 하지만, 파이썬의 일반적인 딕셔너리는 키:값 쌍이 추가되는 순서를 기억하지 않습니다. 아래의 예시를 보겠습니다.
OrderedDict 이란?
OrderedDict은 삽입된 순서를 기억하는 딕셔너리 자료형입니다. 딕셔너리 자료형과 대부분 동일하며, 삽입된 순서 그대로 갖는다는 특징이 있습니다.
di = dict()
di['a'] = 1
di['c'] = 2
di['b'] = 3
print(di)
from collections import OrderedDict
or_di = OrderedDict()
or_di['a'] = 1
or_di['c'] = 2
or_di['b'] = 3
print(or_di)
일반 dictionary는 삽입된 순서로 출력되지 않았습니다. 위에는 a, b, c 순서로 출력되었지만, 사실상 무작위에 가깝습니다. 반대로 OrderedDict는 삽입된 순서를 기억하고 있는 것을 볼 수 있습니다.
OrderedDict의 메서드
popitem(last=True)
입력 인자 | 입력자료형 | 설명 |
last | bool(True or False) | 마지막 item을 pop할지, 첫 item을 pop할지 결정한다. |
사용 형식)
or_di.popitem()
or_di.popitem(last=False)
사용 예시)
popitem 메서드의 default value는 last=True이기 때문에 그냥 popitem()을 사용하였을 때, 마지막 인자를 pop 합니다. pop이란 해당 인자를 뽑아 출력한다는 의미입니다. popitem(last=False)를 실행하면 OrderedDict의 첫 번째 인자를 pop 하게 됩니다. 마지막 셀을 보면 첫 번째와 마지막 인자가 빠져나와 ('c',2)만 남아있는 것을 볼 수 있습니다.
move_to_end(key, last=True)
입력 인자 | 입력자료형 | 설명 |
key | 딕셔너리의 key값 | key값을 입력받아 딕셔너리의 마지막 혹은 처음으로 이동 시킨다. |
last | bool(True or False) | key값을 마지막으로 옮길지, 처음으로 옮길지 결정한다. |
사용 형식)
or_di.move_to_end('a')
or_di.move_to_end('a',last=False)
사용 예시)
or_di = OrderedDict(zip('abcde',range(4)))
키로 abcde를 갖고, 값으로 01234를 갖는 OrderedDict를 생성하였습니다.
두 번째 셀에서 key 값으로 'a'를 갖는 key:value 쌍을 마지막으로 옮겼습니다. 세 번째 셀에서 last=False를 사용하여 ('a',0)을 다시 첫 번째로 옮겼습니다.
Python logo: https://ourcodeworld.com/articles/read/734/why-is-python-the-future-of-programming
코드 실행 결과 github : github.com/netsus/python_practice/blob/master/python_practice_3_Ordered_dict.ipynb
'Programming > Python 기초' 카테고리의 다른 글
[Python] Counter 란? (0) | 2020.11.13 |
---|---|
[Python] map 함수란? 활용법(lambda) (0) | 2020.10.25 |
[Python] 딕셔너리: 키(key) 값(value) 바꾸기(swap) (0) | 2020.09.16 |
[Python] 문자열 자르기 (str to list) [split함수] (3) | 2020.08.25 |
[Python 기초] 자료형 (0) | 2020.08.11 |