簡體   English   中英

如何在python中打印未排序的字典?

[英]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進行排序! 我怎樣才能獲得原始的未排序列表?

迦特

Dicts不像那樣工作

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM