어떤 좋은 길을 갈 것 "에서 {}, {1 89 2 3 ',' 을 3:0, 2 3, 1 89 4 5, 3:0, 4 5} '? 일부 있지만, 모든 사람이 내가 점검됩니다 sorted" " 사용합니다. 반환하는 연산자입니다 튜플을.
표준 파이썬 사전을 비순서 있다. 이 경우에도 정렬할지 (key, 값), 페어, 너회가 wouldn& # 39 는 '방식으로 저장할 수 있는' t be 딕트 오더할 유지할 것이라고 밝혔다.
['오르데레디스'] [1] 가장 쉬운 방법은 사용할 수 있는 요소가 삽입된 순서를 기억합니다.
In [1]: import collections
In [2]: d = {2:3, 1:89, 4:5, 3:0}
In [3]: od = collections.OrderedDict(sorted(d.items()))
In [4]: od
Out[4]: OrderedDict([(1, 89), (2, 3), (3, 0), (4, 5)])
Never mind the way '는' od 인쇄했습니다 아웃해야. # 39, ll 작동합니까 it& 것으로 보고 있다.
In [11]: od[1]
Out[11]: 89
In [12]: od[3]
Out[12]: 0
In [13]: for k, v in od.iteritems(): print k, v
....:
1 89
2 3
3 0
4 5
세 명의 사용자를 위한 파이썬 () '대신', '한 사용할 필요가 스이트마스 스트리트마스 ()'.
In [13]: for k, v in od.items(): print(k, v)
....:
1 89
2 3
3 0
4 5
[1]: http://docs.python.org/library/collections.html # 콜레스티언스트러더드딕트
그들 스스로 사전이 없는 등 일부 오더할 인쇄하려면 순서화된 항목에서와 하는 등, 몇 가지 예를 들면 다음과 같습니다.
mydict = {'carl':40,
'alan':2,
'bob':1,
'danny':3}
for key in sorted(mydict):
print "%s: %s" % (key, mydict[key])
보기입니다:
alan: 2
bob: 1
carl: 40
danny: 3
keylist = mydict.keys()
keylist.sort()
for key in keylist:
print "%s: %s" % (key, mydict[key])
출처: http://www.saltycrane.com/blog/2007/09/how-to-sort-python-dictionary-by-keys/
[Python& # 39 의 '모음' 라이브러리란 문서용으로] 에서 (http://docs.python.org/2/library/collections.html? = 오르데레디스 강조표시할 # 재료와 오르데레디스 참조용이므로):
>>> from collections import OrderedDict
>>> # regular unsorted dictionary
>>> d = {'banana': 3, 'apple':4, 'pear': 1, 'orange': 2}
>>> # dictionary sorted by key -- OrderedDict(sorted(d.items()) also works
>>> OrderedDict(sorted(d.items(), key=lambda t: t[0]))
OrderedDict([('apple', 4), ('banana', 3), ('orange', 2), ('pear', 1)])
>>> # dictionary sorted by value
>>> OrderedDict(sorted(d.items(), key=lambda t: t[1]))
OrderedDict([('pear', 1), ('orange', 2), ('banana', 3), ('apple', 4)])
>>> # dictionary sorted by length of the key string
>>> OrderedDict(sorted(d.items(), key=lambda t: len(t[0])))
OrderedDict([('pear', 1), ('apple', 4), ('orange', 2), ('banana', 3)])
파이썬 모듈 구축 등 여러 가지) 에 있는 정렬할지 시동키는 자동으로 유지할 수 있도록 사전 주문. 포지셔닝합니다 [스페인드콘타이너스] (http://www.grantjenks.com/docs/sortedcontainers/) 모듈에서는 원하는거요 순수 파이썬 및 때 빠르게 c 구현. 또한 [성능 비교] (http://www.grantjenks.com/docs/sortedcontainers/performance.html) 를 상대로 또 다른 인기 있는 벤치 마크 옵션뿐 채널이어야.
순서화된 딕트 백업이었습니다 사용 할 경우 키 / 값 쌍을 적합하지 지속적으로 추가하고 제거할 뿐만 아니라 반복.
>>> from sortedcontainers import SortedDict
>>> d = {2:3, 1:89, 4:5, 3:0}
>>> s = SortedDict(d)
>>> s.items()
[(1, 89), (2, 3), (3, 0), (4, 5)]
이 스페인디스 인덱스된 위치 조회 및 삭제 유형, t # 39 는 어떤 isn& 가능한) 를 내장해 이 딕트 유형:.
>>> s.iloc[-1]
4
>>> del s.iloc[2]
>>> s.keys()
SortedSet([1, 2, 4])
이미 언급한 것처럼, 사전 비순서 본질적으로 다른 있다. 그러나 문제는 단순히 , 사전의 디스플레이하여 순서화된 패션 '사전' 방법으로 사용할 수 있으며, 이 사전은 오버라이드합니다 str 하위 클래스 딕트 내장 '보다는'. 예.
class SortedDisplayDict(dict):
def __str__(self):
return "{" + ", ".join("%r: %r" % (key, self[key]) for key in sorted(self)) + "}"
>>> d = SortedDisplayDict({2:3, 1:89, 4:5, 3:0})
>>> d
{1: 89, 2: 3, 3: 0, 4: 5}
참고로, 이 변경 방법에 대해 아무 것도 가지고 있으며, 순서, 그들은 그들 반복할 때 시동키는 돌아온다면요 they& # 39 을 (를) ',' re just how 등), 또는 피팅의 표시되었는지 인쇄하십시오 파이썬 콘솔이군요.
Python 은 파이썬 전에 사전 비순서 3.6tb. 스피통 에서 구현, 사전 는 파이썬 3.6tb 삽입에서 주문. 이 언어는 Python 에서 3.7 될 피쳐입니다.
Python 에서 변경) 의 3.6tb (https://docs.python.org/3.6/whatsnew/3.6.html # whatsnew36-compactdict):
>. 이 새로운 구축상의 고려되는지 순서 보존 측면에서 이 >. (여기에는 빛위에 했던 구현 세부 사항 및 안 됩니다. >. 변화가 필요한 것은 이 새로운 딕트 미래를 알 수 있다. >. 구축상의 언어로 변경하기 전에 몇 릴리스에서와 >. 현재 모든 언어 사양명세 의무화하는 순서 보존 시맨틱스를 >. 및 향후 파이썬 구현이. 또한 유지할 수 있습니다. >. 이전 버전의 이전 버전과의 호환성 있는 언어 >. 예를 들어 주문하십시오 무순서 이터레이션에 여전히 실제로 파이썬 3.5).
Python 에서 3.7 문서 (https://docs.python.org/3.7/tutorial/datastructures.html # 사전):
>. 사전 (d) 에 사용되는 모든 시동키는 바뀌엇어요 되돌려줍니다 수행하는 목록 >. , 삽입에서 사전에 있는 주문하십시오 (스케쳐내 it 정렬할지 됩니다 >. 대신 정렬할지 (d)).
그래서 이전 버전과 달리 한 후 파이썬 3.6/3.7 딕트 정렬할 수 있습니다. 스케쳐내 네스트된 딕트 딕트 서브노드 인사이드라면 정렬하려면 등 할 수 있습니다.
test_dict = {'a': 1, 'c': 3, 'b': {'b2': 2, 'b1': 1}}
def dict_reorder(item):
return {k: sort_dict(v) if isinstance(v, dict) else v for k, v in sorted(item.items())}
reordered_dict = dict_reorder(test_dict)
https://gist.github.com/ligyxy/f60f0374defc383aa098d44cfbd318eb
나는 여기서 몇 가지 간단한 솔루션을 사용하여 정렬하려면 딕트 pprint '키' 에서 찾을 수 있다. 예.
>>> x = {'a': 10, 'cd': 20, 'b': 30, 'az': 99}
>>> print x
{'a': 10, 'b': 30, 'az': 99, 'cd': 20}
반면 it 반환되므로 딕트 정렬할지 pprint 를 사용하여
>>> import pprint
>>> pprint.pprint(x)
{'a': 10, 'az': 99, 'b': 30, 'cd': 20}
사전이란다 정렬하려면 편리한 방법이 있습니다
질문) 에 따르면,
이 솔루션은:
c={2:3, 1:89, 4:5, 3:0}
y=sorted(c.items())
print y
(여기서 c 는 이름을 사전이므로)
이 프로그램은 다음과 같은 결과가 출력됩니다.
[(1, 89), (2, 3), (3, 0), (4, 5)]
같은 와-u 그들이성년에.
또 다른 예는:
d={"John":36,"Lucy":24,"Albert":32,"Peter":18,"Bill":41}
x=sorted(d.keys())
print x
는 출력입니다 ' [& # 39, albert& # 39, & # 39, bill& # 39, & # 39, john& # 39, & # 39, & # 39, # 39 peter& lucy& # 39;;;]'
y=sorted(d.values())
print y
[18, 24, 32, 36, 41] '는 출력입니다'
z=sorted(d.items())
print z
는 출력:
[('Albert', 32), ('Bill', 41), ('John', 36), ('Lucy', 24), ('Peter', 18)]
따라서 이를 키를 변경하여, 가치, 항목에서와 어떤 조언들이요 와-u 그들이성년에 인쇄할 수 있습니다. 이를 통해 희망을!
정확히요 그리웠댔지 발생시킬 것이다.
D1 = {2:3, 1:89, 4:5, 3:0}
sort_dic = {}
for i in sorted(D1):
sort_dic.update({i:D1[i]})
print sort_dic
{1: 89, 2: 3, 3: 0, 4: 5}
하지만, 이 때문에 정답이 아닙니다 이렇게 서로 다른 별개의 비헤이비어를 표시할 수 있는 사전, 내가 배운 있다. 업그레이드됨 완벽한 방법으로 제안한 적이 있는 팀 내 답변서에서 쿼리하지 실로나는 공유함을 삽입하십시오.
from collections import OrderedDict
sorted_dict = OrderedDict(sorted(D1.items(), key=lambda t: t[0]))
주요 산업별로 따라 현재 사전 정렬하여 새 사전을 만들 수 있습니다 질문.
이것은 당신의 사전
d = {2:3, 1:89, 4:5, 3:0}
이 새 사전을 만드는 d1 정렬하여 속도입니다.4 flexlm*용 람다 함수
d1 = dict(sorted(d.items(), key = lambda x:x[0]))
d1 제공하십시오 {1: 89, 2: 3, 3: 0, 4: 키, 5} 정렬할지 따라 d.
내가 생각하는 가장 쉬운 것은 키와 키 값을 저장합니다 페어당 정렬할지 딕트 정렬하려면 의해 새 딕트.:
dict1 = {'renault': 3, 'ford':4, 'volvo': 1, 'toyota': 2}
dict2 = {} # create an empty dict to store the sorted values
for key in sorted(dict1.keys()):
if not key in dict2: # Depending on the goal, this line may not be neccessary
dict2[key] = dict1[key]
이를 위해 보다.
dict1 = {'renault': 3, 'ford':4, 'volvo': 1, 'toyota': 2}
dict2 = {} # create an empty dict to store the sorted values
for key in sorted(dict1.keys()):
if not key in dict2: # Depending on the goal, this line may not be neccessary
value = dict1[key]
dict2[key] = value
파이썬 딕토스 취소 주문 있다. 일반적으로 가장 일반적인 览侩 荤례 는 이후 조회 할 수 있는 문제가 아니다.
가장 간단한 방법으로 만들 수 있는 '' 콜레스티언스트러더드딕트 그리웠댔지 약간만이라도 요소를 삽입 정렬 순서.
ordered_dict = collections.OrderedDict([(k, d[k]) for k in sorted(d.keys())])
위와 같이 할 경우, 가장 간단한 방법은 다른 이터레이션된 제안했다고 약간만이라도 반복할 정렬할지 키. 예 -
인쇄하십시오 정렬할지 값을 통해 키:
# create the dict
d = {k1:v1, k2:v2,...}
# iterate by keys in sorted order
for k in sorted(d.keys()):
value = d[k]
# do something with k, value like print
print k, value
목록을 가져올 정렬할지 값을 통해 키:
values = [d[k] for k in sorted(d.keys())]
I come up with 한 줄로 딕트 정렬.
>> a = {2:3, 1:89, 4:5, 3:0}
>> c = {i:a[i] for i in sorted(a.keys())}
>> print(c)
{1: 89, 2: 3, 3: 0, 4: 5}
[Finished in 0.4s]
ᄋ "이번 도움이 됩니다.
이 기능은 반복적으로 정렬하려면 사전을 통해 모든 주요. 즉, 만약 임의의 값을 기준으로 주요 사전에 역시 사전, 너무 정렬됩니다. 간단한 변화가 아닌 이상, 3.6tb 스피통 에서 실행할 경우 사용할 수 있는 '' 대신 '오르데레디스 딕트' 만들 수 있습니다.
from collections import OrderedDict
def sort_dict(d):
items = [[k, v] for k, v in sorted(d.items(), key=lambda x: x[0])]
for item in items:
if isinstance(item[1], dict):
item[1] = sort_dict(item[1])
return OrderedDict(items)
#return dict(items)