[Python] Dictionary - Key / Value로 내림차순/오름차순 하기

Isabel·2022년 7월 24일
1

Key를 기준으로 오름차순 정렬

key를 기준으로는 sorted()를 사용하면 오름차순으로 정렬할 수 있다.
argument를 1개 받으며, dict.items()를 넣어주면 오름차순으로 정렬된다.
tuple로 이루어진 list를 반환한다.

dict_a={'파이썬':1, '자바':2, '자바스크립트':3, '씨':4}
sorted_dict = sorted(dict_a.items())
print(sorted_dict)
# [('씨', 4), ('자바', 2), ('자바스크립트', 3), ('파이썬', 1)]

Key만 뽑아서 오름차순 정렬

key만 출력하는 경우에는 sorted함수에 dict을 넣으면 key만을 뽑아서 오름차순 정렬이 된다.

dict_a={'파이썬':1, '자바':2, '자바스크립트':3, '씨':4}
sorted_dict = sorted(dict_a)
print(sorted_dict)
#['씨', '자바', '자바스크립트', '파이썬']

이제 여기서부터는 람다식을 이용해야 한다.

Key를 기준으로 내림차순 정렬

내림차순의 경우에도 sorted()함수를 사용하는데, 내림차순이기 때문에 reverse=True를 인자로 건넨다. 또한 lambda를 key인자로 전달한다.

sorted 함수의 key 파라미터는 어떤 것을 기준으로 정렬할 것인지를 정해준다. 즉, key 값을 기준으로 비교를 하여 정렬을 하는 것이다.

아래에서 key는 기준으로서의 매개변수이다. item[0] 은 dicts.items()를 뽑아보면 (key, value) 튜플로 이루어진 리스트가 나오는데 이 튜플에서의 key를 의미한다.

sorted_dict = sorted(dict_a.items(), key = lambda item: item[0], reverse = True)
print(sorted_dict)

Key만을 뽑아서 내림차순 정렬

key만 출력할 경우에는 sorted()함수에 인자로 dictionary와 역순 정렬이라는 의미의 reverse=True를 넣어준다.

dict_a={'파이썬':1, '자바':2, '자바스크립트':3, '씨':4}
sorted_dict = sorted(dict_a,reverse=True)
print(sorted_dict)
#['파이썬', '자바스크립트', '자바', '씨']

Value를 기준으로 오름차순 정렬

value를 기준으로 오름차순 정렬한 sorted_dict을 출력하기 위해서 key로 lambda를 주고, 여기서의 item[1]은 value를 의미한다. item[1](value)을 기준으로 정렬을 하겠다는 의미이다.

dict_a={'파이썬':1, '자바':2, '자바스크립트':3, '씨':4}
sorted_dict = sorted(dict_a.items(), key= lambda item:item[1])
print(sorted_dict)
#[('씨', 4), ('자바스크립트', 3), ('자바', 2), ('파이썬', 1)]

Value를 기준으로 내림차순 정렬

value를 기준으로 오름차순 정렬한 sorted_dict을 출력하기 위해서 key로 lambda를 주고, 여기서의 item[1]은 value를 의미한다. item[1](value)을 기준으로 역순 정렬을 하겠다는 의미이다.

dict_a={'파이썬':1, '자바':2, '자바스크립트':3, '씨':4}
sorted_dict = sorted(dict_a.items(), key= lambda item:item[1], reverse=True)
print(sorted_dict)
#[('씨', 4), ('자바스크립트', 3), ('자바', 2), ('파이썬', 1)]

0개의 댓글