파이썬에서 사전은 내장된 데이터 유형이자 정렬되지 않은 저장 구조이며 각 요소는 키-값 쌍입니다.
예: dict = {'username': 'xiaoming', 'password': '123456'}, 여기서 'username'과 'password'는 키이고 'xiaoming'과 '123456'은 값입니다. d[key]를 통해 해당 값 값에 대한 참조를 얻을 수 있지만, 값을 통해 키를 얻을 수는 없습니다.
사전의 경우 다음 사항을 알아야 합니다.
a. 사전의 키는 대소문자를 구분합니다.
b 사전에는 중복된 키가 있을 수 없습니다. unordered 에는 요소 순서 개념이 없으며 단지 순서 쌍의 단순한 배열일 뿐입니다.
사전은 키/값으로 정렬됩니다.
사전 자체에는 순서 개념이 없지만 항상 어느 시점에 있지만 사전을 정렬해야 하는 경우가 많습니다.
방법 1: 키 값으로 정렬 .
def sortedDictValues1(adict): items = adict.items() print "items:",items items.sort() return [value for key, value in items] adict = {"a1":11,"b1":2,"c1":30,"e1":20,"d1":4} print sortedDictValues1(adict) items: [('a1', 11), ('c1', 30), ('e1', 20), ('b1', 2), ('d1', 4)] [11, 2, 30, 4, 20]사전의 items 메소드는 튜플 목록을 반환합니다. 여기서 각 튜플에는 항목 쌍(키와 해당 값)이 포함되어 있습니다. 튜플 목록은 sort() 메서드를 사용하여 정렬할 수 있습니다.
방법 2: 키 값으로 정렬
def sortedDictValues2(adict): keys = adict.keys() keys.sort() return [dict[key] for key in keys]사전 객체의 키() 메서드는 사전에 있는 모든 키 값의 목록을 반환하며 순서는 무작위입니다. 정렬이 필요한 경우 반환된 키 값 목록에서 sort() 메서드를 사용하면 방법 1보다 빠릅니다.
방법 3: 키 값으로 정렬
def sortedDictValues3(adict): keys = adict.keys() keys.sort() return map(adict.get, keys)매핑 방법을 사용하여 마지막 단계를 보다 효율적으로 수행
방법 4: 한 줄 문
[(k,di[k]) for k in sorted(di.keys())]방법 5: 값으로 정렬
def sort_by_value(d): items=d.items() backitems=[[v[1],v[0]] for v in items] backitems.sort() return [ backitems[i][1] for i in range(0,len(backitems))]먼저 항목의 키와 값을 교환하여 목록에 넣은 다음 목록의 각 요소의 첫 번째 값(원래 값)에 따라 정렬합니다.
방법 6: 값 기준 정렬
[ v for v in sorted(di.values())]방법 7: 정렬 함수의 key= 매개변수를 사용하여 정렬합니다.
키로 정렬
print sorted(dict1.items(), key=lambda d: d[0])값으로 정렬
print sorted(dict1.items(), key=lambda d: d[1]) python内置sorted函数的帮助文档: sorted(…) sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list사전으로 정렬 실제로 핵심 아이디어는 동일합니다. 즉, 요소를 분리합니다. 사전에 넣고 목록에 넣고 목록을 정렬하여 간접적으로 사전을 정렬합니다. 이 "요소"는 키, 값 또는 항목일 수 있습니다.
방법 8: PYTHON의 COLLECTION 시리즈 - 순서가 지정된 사전(ORDEREDDICT)
orderdDict는 사전 요소가 추가되는 순서를 유지하는 사전 유형에 대한 보완입니다
import collections dic = collections.OrderedDict() dic["featureName"] = "f1" dic["uId"] = "12345" dic["value"] = "7" print dic #结果 #OrderedDict([('featureName', 'f1'), ('uId', '12345'), ('value', '7')])
위 내용은 Python 사전을 정렬할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!