본문 바로가기

BLOG/파이썬 기초

[파이썬] 딕셔너리를 요소로 갖는 리스트, 동일한 key를 기준으로 정렬하려면? - sort()

 

딕셔너리 형태의 데이터를 다룰 때 참 다양한 형태들이 있는데요,

그중 딕셔너리를 요소로 갖는 리스트를 정렬하는 방법을 살펴보도록 하겠습니다.

 

보통 딕셔너리라고 하면 dictionary1 = {'A' : 100, 'B' : 50, 'C' : 90} 이런 형태인데요,

이번 포스팅에서 설명하는 데이터 형태는 다음과 같습니다.

 

list1 = [{'A' : 100, 'B' : 70},

          {'A' : 60, 'B' : 90},

          {'A' : 50, 'B' : 70}]

 

이러한 형태는 주로 전화번호부, 학급별 점수 등에서 볼 수 있는데요, 이때 특정 key를 기준으로 딕셔너리들을 정렬해야 하는 경우가 있습니다. 이러한 경우 정렬을 해주는 sort() 함수를 이용하면 되는데요,

list.sort(key=lambda x:x['key이름']) 과 같이 입력하여 정렬시킬 수 있습니다.

만약, 내림차순으로 정렬하고 싶다면 sort() 함수 안에 reverse=1 이라고 입력해주면 됩니다.

 

아래 코드는 'A'라는 key를 기준으로 value 값을 내림차순 정렬시킨 코드입니다.

 

list1 = [{'A' : 100, 'B' : 70},
         {'A' : 60, 'B' : 90},
         {'A' : 50, 'B' : 70}]

list1.sort(key=lambda x:x['A'], reverse=1)
list1

 

[{'A': 100, 'B': 70}, 
 {'A': 60, 'B': 90}, 
 {'A': 50, 'B': 70}]

 

위 결과를 보면 'A' key를 기준으로 내림차순으로 정렬이 잘 되었음을 확인할 수 있습니다.