파이썬 딕셔너리와 람다식을 통한 정렬

조홍식·2022년 8월 25일
0
post-custom-banner

코딩테스트를 풀다 딕셔너리를 정렬하는 순간 생각이 멈췄다.
평소 딕셔너리를 사용하긴했지만 key값와 value값을 자유자재로 사용하고 정렬하는 방법은 잘 몰랐기 때문이다.
따라서 나의 노트에 정리한다,,,,

딕셔너리(dictionary)

파이썬에서 딕셔너리(dictionary)란 사전형 데이터를 의미하며, key와 value를 1대1로 대응시킨 형태이다.
이때 하나의 key에는 하나의 value만이 대응되지만 하나의 value값에는 여러 key값이 있을 수 있다.

	dict = {
    	2: 3,
    	1: 3,
    	3: 5,
    	6: 3,
    	5: 2
}
    

람다식(Lambda)

이전에 함수를 정의할때는 이랬다

	def prac(x):
    	return x+1
 prac(1)
 --결과값 : 2

이 함수를 람다식으로 바꾸면

(lambda x : x+1)(1)
 --결과값 : 2

이런식으로 바뀐다. lambda옆에 x값은 함수의 매개변수로 사용되고 :옆 x+1은 매개변수를 사용한 결과값이다.

이를 이용해 딕셔너리를 여러 방식으로 정렬해보겠다.

dict = {
    	2: 3,
    	1: 3,
    	3: 5,
    	6: 3,
    	5: 2
}

#1.
	print(sorted(dict.keys(), key=lambda x: x))
    -딕셔너리의 키값들을 매개변수 x에 넣어 x로 정렬하며
     키값을 출력한다.
    #결과값 : [1,2,3,5,6]
#2.
	print(sorted(dict.values(), key=lambda x: x))
    -딕셔너리의 value값들을 매개변수 x에 넣어 x로 정렬하며 
     value값을 출력한다다
    #결과값 : [2,3,3,3,5]
#3.
	print(sorted(dict, key=lambda x: dict[x]))
    -딕셔너리의 키값들을 매개변수 x에 넣어 dict[x]dict의 value값으로 로 정렬하며
     키값을 출력한다.
    #결과값 : [5, 2, 1, 6, 3]
#4.
	print(sorted(dict.items(), key=lambda x: x[0]))
    -딕셔너리의 키,값 쌍들을 매개변수 x에 넣어 키값 
     정렬하며 키값을 출력한다.
    #결과값 : [(1, 3), (2, 3), (3, 5), (5, 2), (6, 3)]
profile
work hard!
post-custom-banner

0개의 댓글