입력 순서를 기억하는 Dictionary[OrderedDict]

2021. 8. 19. 13:01프로그래밍 개발(Development)/Python

반응형

Python을 개발하다보면 dictionary를 사용하는 경우가 많다.

많이 사용하는 방법 중의 하나가 아래와 같은 방법으로 많이 쓰이지만, x ,y, x key 값의 순서는 보존되지 않는다.

test = {}
test['x'] = 'x1'
test['y'] = 'y2'
test['z'] = 'z3'

for k, v in test.items():
    print (k, v)

 

결과

결과를 보면 입력은 x, y, z 순이지만 결과는 y, x, z 순으로 순서의 개념이 없다.

 

그래서 사용되는 collections 라이브러리의 OrderedDict 클래스를 사용할 경우

입력 순서를 기억하여, 그대로 출력을 하게 된다.

from collections import OrderedDict

test = OrderedDict()
test['x'] = 'x1'
test['y'] = 'y2'
test['z'] = 'z3'

for k, v in test.items():
    print (k, v)

결과

 

※ 파이썬 버전 3.7 이후 부터는 표준 dict 에서도 입력 순서를 보존하지만, 그 이하 버전에서는 순서를 보존하기 위해선 collections 라이브러리의 OrderedDict 클래스를 사용해야 합니다.

반응형