코딩테스트를 풀다 딕셔너리를 정렬하는 순간 생각이 멈췄다.
평소 딕셔너리를 사용하긴했지만 key값와 value값을 자유자재로 사용하고 정렬하는 방법은 잘 몰랐기 때문이다.
따라서 나의 노트에 정리한다,,,,
파이썬에서 딕셔너리(dictionary)란 사전형 데이터를 의미하며, key와 value를 1대1로 대응시킨 형태이다.
이때 하나의 key에는 하나의 value만이 대응되지만 하나의 value값에는 여러 key값이 있을 수 있다.
dict = {
2: 3,
1: 3,
3: 5,
6: 3,
5: 2
}
이전에 함수를 정의할때는 이랬다
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)]