[英]How to print unsorted dictionary in python?
我在python中有這個詞典;
d={}
d['b']='beta'
d['g']='gamma'
d['a']='alpha'
當我打印字典;
for k,v in d.items():
print k
我明白了
a
b
g
好像python會自動對dict進行排序! 我怎樣才能獲得原始的未排序列表?
迦特
CPython實現細節 :鍵和值以任意順序列出,這是非隨機的,在Python實現中各不相同,並且取決於字典的插入和刪除歷史。
您可以使用包含2元組的列表:
d = [('b', 'beta'), ('g', 'gamma'), ('a', 'alpha')]
Wayne的答案概述了類似但更好的解決方案。
如前所述,dicts不會對您放入的項目進行排序或取消排序。檢索它時如何排序是“神奇的”。 如果您想保留訂單 - 或者不是 - 您還需要綁定列表或元組。
這將為您提供相同的dict結果以及保留訂單的列表:
greek = ['beta', 'gamma', 'alpha']
d = {}
for x in greek:
d[x[0]] = x
如果您不需要更改原始列表/訂單,只需將[]更改為()。
不要使用字典。 或者使用Python 2.7 / 3.1 OrderedDict
類型。
字典中沒有順序可以說,沒有原始的未排序列表 。
不,python不排序dict,它太貴了。 items()
的順序是任意的。 從python文檔:
CPython實現細節:鍵和值以任意順序列出,這是非隨機的,在Python實現中各不相同,並且取決於字典的插入和刪除歷史。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.