dict = {'apple': 3, 'banana': 2, 'cherry': 1}
# key 순으로 정렬
sorted_d = sorted(dict.items())
(<==> sorted_d = sorted(dict.items(), key=lambda x: x[0]) )
print(sorted_d)
# [('apple', 3), ('banana', 2), ('cherry', 1)]
# value 순으로 정렬
sorted_d = sorted(dict.items(), key=lambda x: x[1])
print(sorted_d)
# [('cherry', 1), ('banana', 2), ('apple', 3)]
# 내림차순으로 정렬 (숫자만 가능! str은 안됨!)
(<==> sorted_d = sorted(dict.items(), key=lambda x: -x[1]) )
print(sorted_d)
# [('apple', 3), ('banana', 2), ('cherry', 1)]
# key에 요소를 리스트 혹은 튜플로 줄 때
# 튜플 안에서 앞의 값이 같으면 뒤의 값을 기준으로 정렬한다.
# 첫 번째 원소를 오름차순, 첫 번째 원소가 같으면
# 두 번째 원소(숫자)를 기준으로 내림차순 정렬
dict = {'apple': 3, 'banana': 2, 'orange': 1, 'cherry': 1}
sorted_d = sorted(dict.items(), key=lambda x: (-x[1], x[0]))
# sorted_d = sorted(dict.items(), key=lambda x: [-x[1], x[0]])
# x[1]를 오름차순으로 정렬하고 x[1]의 값이 같으면 x[0]를 기준으로 내림차순 정렬
print(sorted_d)
# [('apple', 3), ('banana', 2), ('cherry', 1), ('orange', 1)]
(cf. operator 모듈의 itemgetter() 함수를 사용하는 방법도 있다.)
+ 문자열 또는 절대값을 기준으로 정렬하는 방법도 있다. (feat. key옵션)
# 문자열 길이순으로 정렬(key=len)
lst = ['apple', 'strawberry', 'cherry', 'blueberry']
sorted_l = sorted(lst, key=len)
print(sorted_l)
# ['apple', 'cherry', 'blueberry', 'strawberry']
# 절대값으로 정렬(key=abs)
lst = [-6, 10, 0, 3, -7]
sorted_l = sorted(lst, key=abs)
print(sorted_l)
# [0, 3, -6, -7, 10]
# ('key=abs'없을 경우: [-7, -6, 0, 3, 10])
728x90
'Python' 카테고리의 다른 글
[파이썬] 시간 측정하기 (0) | 2024.09.21 |
---|---|
[파이썬] 대량 입력 처리 방법 (2) | 2024.09.17 |
[파이썬] count 함수 (1) | 2024.09.13 |
[파이썬] sort, sorted 함수 + 리스트 길이 옵션 (0) | 2024.09.12 |
[파이썬] list(리스트)에서 원소파이썬] list(리스트)에서 원소 삭제하기(remove, del, pop, clear) (0) | 2024.09.10 |