dict를 key순서대로 정렬하려면 어떻게 하나요?
조회수 12826회
{2:3, 1:89, 4:5, 3:0}
->{1:89, 2:3, 3:0, 4:5}
같이
키순서대로 정렬하려면 어떻게 해야 하나요?
다른 글에서는 다들 정렬한 값으로 tuple을 return 하더라고요.
저는 tuple이 아니라 dict가 필요합니다
1 답변
-
파이썬 표준의
dict
타입은 순서가 없습니다. 따라서key-value
값을 어떻게 정렬하더라도, 순서를 유지하면서dict
타입으로 저장할 수는 없습니다.그래서
dict
로 순서를 유지하고 싶을 때는 collections모듈의 OrderedDict를 씁니다. *OrderedDict는 원소를 들어온 순서대로 저장합니다import collections d = {2:3, 1:89, 4:5, 3:0} od = collections.OrderedDict(sorted(d.items())) #소팅하고 순서대로 ordered dict에 넣어줌 print od #OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)]) print od[1] #89 print od[3] #0 for k, v in od.iteritems(): print k, v #파이썬 3에서는 for k, v in od.items(): print k, v
댓글 입력