궁금증 연구소

안녕하세요. 궁금증연구소 입니다.

오늘 포스팅 주제는 "딕셔너리의 저장순서와 OrderedDict의 활용" 입니다.

딕셔녀리는 순서와 관계없이 내용만 같으면 같은 객체로 인식

 

일반적인 딕셔너리는 위와같이 내용의 순서가 달라도 같은 값으로 인식합니다. 

따라서 Python 버전 3.7이전에는 딕셔너리를 for문으로 돌리면 키값이 랜덤하게 나왔다. 3.7이후부터는 개선이 되어서,

저장된 차례대로 값이 나온다.

 

저장된 순서로 나오는 3.8버전

3.7 버전이전에는 이문제 때문에 collections 에 있는 OrderedDict 객체를 활용했다. 만약 3.7이전 버전의 파이썬을 활용하고 있다면 OrderedDict로 딕셔너리를 만들면 3.7버전 이후 파이썬처럼 값을 차례로 출력받을수 있다.

 

그런데 이런 경우가 아니더라도,

순서가 다른 두 객체를 다른것으로 인식해야 할 경우에도 OrderedDict을 활용하면 좋다.

 

 

OrderedDict의 특성

OrderedDict은 값의 순서가 다른 딕셔너리를 같지 않다고 생각한다. 즉 저장순서를 고려한다.

 

movetoend

OrderedDict 객체 메소드 중 move_to_end 메소드를 활용하면, 딕셔너리 키값을 인수로 받아 순서상 끝으로 값의 순서를 쉽게 변경할 수 있다.

 

move_to_end

이런식으로 활용하면 된다.

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading