作爲字典不排序的輸出也不會下令:相應字典的鍵和值輸出
>>> d = dict(b = 1, a = 2, z = 3)
>>> d.keys()
['a', 'z', 'b']
>>> d.values()
[2, 3, 1]
但是keys
和values
輸出上述總是在相應的訂單?
作爲字典不排序的輸出也不會下令:相應字典的鍵和值輸出
>>> d = dict(b = 1, a = 2, z = 3)
>>> d.keys()
['a', 'z', 'b']
>>> d.values()
[2, 3, 1]
但是keys
和values
輸出上述總是在相應的訂單?
答案是肯定的。
如果項目(),鍵(),價值觀(),iteritems(),出iterkeys(),和itervalues()被稱爲中間沒有修改的字典,列表將直接對應。這允許使用zip()創建(值,鍵)對:pairs = zip(d.values(),d.keys())。對於iterkeys()和itervalues()方法,同樣的關係也適用:pairs = zip(d.itervalues(),d.iterkeys())爲pair提供相同的值。創建相同列表的另一種方式是在d.iteritems()中針對(k,v)的pairs = [(v,k))。
如果鍵,值和項目的看法是,沒有插入修改字典遍歷,項目的順序將直接對應
也值得加入Python 3:「如果鍵,值和項目視圖迭代完成,不需要對詞典進行中間修改,項目的順序將直接對應......」https://docs.python.org/3/ library/stdtypes.html#dictionary-view-objects –
他們改變了文字,但仍然是同樣的行爲。謝謝克里斯 –
注意,(迂腐點)字典在CPython 3.6中訂購http://stackoverflow.com/questions/39980323/dictionaries-are-ordered-in-cpython-3-6 –
@Chris_Rands我讀過,看起來不清楚它是否應該是依靠。 –
@ayhan這裏的文本和示例比另一個問題更清晰。 –