[Python] dictionary 정렬하기

Hye·2023년 2월 22일

이용하는 함수

🔎 sorted()

  • sorted(정렬 대상, 정렬 기준(key), 오름차순(기본)/내림차순)으로 사용
    • key : lambda 사용 가능
    • 내림차순 : reverse = True

🔎 items()

  • 딕셔너리.items()으로 사용
  • 딕셔너리에 items() 사용하면 {"key" : value}[(key, value)]로 바꿔줌

1️⃣ key 기준으로 정렬

  • sorted() 이용
  • 딕셔너리.items() 이용
  • sorted()의 결과는 List로 변환되기 때문에 dictionary 형태로 받고 싶으면 다시 변환해줘야 함
  • d.items()가 아닌 dictionary 자체를 sorted() 함수에 넘기면 key 값들만 따로 빠져서 정렬됨

오름차순 정렬

>>> d = {'a' : 0, 'c' : 1, 'b' : 2}

>>> d1 = sorted(d.items()) #정렬
[('a', 0), ('b', 2), ('c', 1)]

>>> d2 = dict(sorted(d.items()))
{'a' : 0, 'b' : 2, 'c' : 1}

>>> d3 = sorted(d)
['a', 'b', 'c']

내림차순 정렬

  • sorted()의 reverse 매개변수 값을 True로 변경
>>> d = {'a' : 0, 'c' : 1, 'b' : 2}

>>> d1 = sorted(d.items(), reverse = True) #정렬
[('c', 1), ('b', 2), ('a', 0)]

>>> d2 = dict(sorted(d.items(), reverse = True))
{'c' : 1, 'b' : 2, 'a' : 0}

>>> d3 = sorted(d, reverse = True)
['c', 'b', 'a']

2️⃣ value 기준으로 정렬

  • lambda 이용

오름차순 정렬

>>> d = {'a' : 0, 'c' : 1, 'b' : 2}

>>> d1 = sorted(d.items(), key=lambda x: x[1])
[('a', 0), ('c', 1), ('b', 2)]

>>> d2 = dict(sorted(d.items(), key=lambda x: x[1]))
{'a' : 0, 'c' : 1, 'b' : 2}

내림차순 정렬

  • sorted()의 reverse 매개변수 값을 True로 변경
>>> d = {'a' : 0, 'c' : 1, 'b' : 2}

>>> d1 = sorted(d.items(), key=lambda x: x[1], reverse = True)
[('b', 2), ('c', 1), ('a', 0)]

>>> d2 = dict(sorted(d.items(), key=lambda x: x[1], reverse = True))
{'b' : 2, 'c' : 1, 'a' : 0}
profile
공부중 📚

0개의 댓글