파이썬에서 키로 사전을 정렬하는 방법
-
dict.keys()
메소드를 사용하여 키로 파이썬 정렬 사전 -
dict.items()
메서드를 사용하여 키로 파이썬 정렬 사전 -
OrderedDict()
메서드를 사용하여 키로 파이썬 정렬 사전 - Python에서 역순으로 사전 정렬
-
사용자 지정
key
함수 메서드를 사용하는 Python 정렬 사전
파이썬 사전은 키의 해시를 평가하여 항목을 유지하는 해시 테이블과 동일하며 항목의 순서를 예상 할 수 없습니다. 이 기사에서는 Python에서 키별로 사전을 정렬하는 방법을 소개합니다.
dict.keys()
메소드를 사용하여 키로 파이썬 정렬 사전
아래 사전을 예로 들어 보겠습니다.
dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
dict.keys()
의 출력은 다음과 같습니다.
dict_keys(["hello", "at", "test", "this"])
이 정렬되지 않은 키 목록에서 새로운, 정렬 된 사전을 만들 수 있습니다.
sorted(dict.keys())
출력:
['at', 'hello', 'test', 'this']
사전에서 각 항목을 선택하여이 정렬 된 목록에 반복적으로 정렬을 적용합니다.
for key in sorted(dict.keys()):
print(key, "::", dict[key])
출력:
at :: 23
hello :: 56
test :: 43
this :: 43
dict.items()
메서드를 사용하여 키로 파이썬 정렬 사전
파이썬에서dict.items()
메서드를 사용하여 키로 사전을 정렬 할 수도 있습니다.
키-값 쌍을 보유하는 목록을 생성합니까?
dict.items()
출력:
dict_items([('hello', 56), ('at', 23), ('test', 43), ('this', 43)])
다음 기능으로 정렬 된 목록을 만들 수 있습니다. 키 값에 따라 사전 항목을 정렬합니다.
sorted(dict.keys())
출력:
['at', 'hello', 'test', 'this']
이제 사전에서 정렬 키-값 쌍을 생성하기 위해 다음 코드를 사용합니다.
for elem in sorted(dict.items()):
print(elem[0], " ::", elem[1])
출력:
at ::23
hello ::56
test ::43
this ::43
복잡성 측면에서 이전 접근 방식보다 더 강력합니다. dict.key()
처럼 반복 가능한 목록을 정렬 한 후 키-값을 확인할 필요가 없기 때문입니다.
OrderedDict()
메서드를 사용하여 키로 파이썬 정렬 사전
또는 collections
모듈을 사용하여 키-값별로 사전 항목을 정렬 할 수 있습니다.
import collections
d = {2: 13, 1: 9, 4: 25, 3: 0}
result = collections.OrderedDict(sorted(d.items()))
print(result)
출력:
OrderedDict([(1, 9), (2, 13), (3, 0), (4, 25)])
Python에서 역순으로 사전 정렬
이전에는 사전 항목을 오름차순으로 정렬했습니다. 이제 사전 항목을 내림차순으로 정렬하는 몇 가지 방법에 대해 설명합니다.
구문은 다음과 같습니다.
sorted(iterable_sequence, reverse=True)
다음 코드는 사전 항목을 정렬하고 뒤집습니다.
dict = {"hello": 56, "at": 23, "test": 43, "this": 43}
for elem in sorted(dict.items(), reverse=True):
print(elem[0], " ::", elem[1])
reverse = true
매개 변수는 정렬 된 사전이 반전되도록합니다.
출력:
this ::43
test ::43
hello ::56
at ::23
사용자 지정key
함수 메서드를 사용하는 Python 정렬 사전
이 메소드는 key
문자열의 길이를 사용하여 사전 항목을 정렬합니다.
sorted(iterable_sequence, key=Function)
문자열 크기를 반환하는 lambda
함수는 key
매개 변수에 제공됩니다.
listofTuples = sorted(dict.items() , key=lambda x: len (x[0] ) )
for elem in listofTuples :
print(elem[0] , " ::" , elem[1] )
출력:
at ::23
test ::43
this ::43
hello ::56