>  기사  >  백엔드 개발  >  Python 사전을 정렬할 수 있나요?

Python 사전을 정렬할 수 있나요?

anonymity
anonymity원래의
2019-06-14 11:25:038475검색

파이썬에서 사전은 내장된 데이터 유형이자 정렬되지 않은 저장 구조이며 각 요소는 키-값 쌍입니다.

Python 사전을 정렬할 수 있나요?

예: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.