파이썬 딕셔너리도 정렬이 된다.

왕윤성·2021년 1월 23일
2

딕셔너리를 Key에 따라 sort하고 싶을때가 있고,
value에 따라 sort하고 싶을 때도 있다.

Key값을 기준으로 sort하기.

#list_of_dictA라는 리스트로 만들어 버리기.
print(dictA) #defaultdict(<class 'int'>, {1: 2, 4: 2, 5: 1, 7: 1, 3: 2, 6: 1, 2: 1})

list_of_dictA = sorted(dictA.items())

print(list_of_dictA) #[(1, 2), (2, 1), (3, 2), (4, 2), (5, 1), (6, 1), (7, 1)]

#sort된 리스트를 다시 dict으로 바꾸기.
dictA = dict(list_of_dictA)
print(dictA)	#{1: 2, 2: 1, 3: 2, 4: 2, 5: 1, 6: 1, 7: 1}

value값을 기준으로 sort하기.

#value값을 기준으로 정렬해서 리스트에 넣기.
print(dictA)	#defaultdict(<class 'int'>, {1: 2, 4: 2, 5: 1, 7: 1, 3: 2, 6: 1, 2: 1})

list_of_dictA = sorted(dictA.items(), key=operator.itemgetter(1))
#key=operator.itemgetter(1)의 뜻은 정렬하고자 하는 키 값을 1번째 인덱스를 기준으로 하겠다는 뜻
#1번째 인덱스란 즉 value를 뜻함.

print(list_of_dictA)	#[(5, 1), (7, 1), (6, 1), (2, 1), (1, 2), (4, 2), (3, 2)]

#다시 딕셔너리로 바꾸기.
dictA = dict(list_of_dictA)
print(dictA)	#{5: 1, 7: 1, 6: 1, 2: 1, 1: 2, 4: 2, 3: 2}
profile
개발자 입니다.

0개의 댓글