成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python 有序字典簡介

DrizzleX / 1700人閱讀

摘要:有序字典簡介示例有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。

有序字典-OrderedDict簡介 示例

有序字典和通常字典類似,只是它可以記錄元素插入其中的順序,而一般字典是會以任意的順序迭代的。參見下面的例子:

import collections

print "Regular dictionary:"
d = {}
d["a"] = "A"
d["b"] = "B"
d["c"] = "C"
d["d"] = "D"
d["e"] = "E"

for k, v in d.items():
    print k, v

print "
OrderedDict:"
d = collections.OrderedDict()
d["a"] = "A"
d["b"] = "B"
d["c"] = "C"
d["d"] = "D"
d["e"] = "E"

for k, v in d.items():
    print k, v

運行結(jié)果如下:

-> python test7.py
Regular dictionary:
a A
c C
b B
e E
d D

OrderedDict:
a A
b B
c C
d D
e E

可以看到通常字典不是以插入順序遍歷的。

相等性

判斷兩個有序字段是否相等(==)需要考慮元素插入的順序是否相等

import collections

print "dict       :",
d1 = {}
d1["a"] = "A"
d1["b"] = "B"
d1["c"] = "C"
d1["d"] = "D"
d1["e"] = "E"

d2 = {}
d2["e"] = "E"
d2["d"] = "D"
d2["c"] = "C"
d2["b"] = "B"
d2["a"] = "A"

print d1 == d2

print "OrderedDict:",

d1 = collections.OrderedDict()
d1["a"] = "A"
d1["b"] = "B"
d1["c"] = "C"
d1["d"] = "D"
d1["e"] = "E"

d2 = collections.OrderedDict()
d2["e"] = "E"
d2["d"] = "D"
d2["c"] = "C"
d2["b"] = "B"
d2["a"] = "A"

print d1 == d2

運行結(jié)果如下:

-> python test7.py
dict       : True
OrderedDict: False

而當判斷一個有序字典和其它普通字典是否相等只需判斷內(nèi)容是否相等。

注意

OrderedDict 的構(gòu)造器或者 update() 方法雖然接受關(guān)鍵字參數(shù),但因為python的函數(shù)調(diào)用會使用無序的字典來傳遞參數(shù),所以關(guān)鍵字參數(shù)的順序會丟失,所以創(chuàng)造出來的有序字典不能保證其順序。

參考資料

https://docs.python.org/2/lib...

https://pymotw.com/2/collecti...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44298.html

相關(guān)文章

  • Python中的字典到底是有序的嗎

    摘要:并且中會顯示,的版本在中已經(jīng)不再支持了。接下來再看下以上版本的效果以版本為例從上圖可以看出,在新的版本中,針對的存儲已經(jīng)變?yōu)橛行?,在遍歷和打印的時候,會按照存儲的順序進行取值。再補充一點之前介紹到,在字典中,是唯一的。 之前寫了文章介紹python中的列表和字典,在文章中描述到了python...

    aervon 評論0 收藏0
  • python3.7的字典有序

    摘要:表容量更新的前后,它的鍵之間的相對順序是會變化的,因此字典的元素是無序的。而且字典擴容和縮容時要按照的順序來保持字典始終有序。舊的字典總會預(yù)留大于的容量的位置,防止碰撞過多影響效率。 python3.7的字典是有序的 舊結(jié)構(gòu) python3.7之前的字典結(jié)構(gòu),經(jīng)典粗暴的hash表實現(xiàn)方式,這樣的話每次hash表的擴容和縮容都可能導(dǎo)致hash值的改變。 hash表容量更新的前后,它的鍵之...

    iamyoung001 評論0 收藏0
  • Python字典小結(jié)

    摘要:我們用函數(shù),來簡單快捷地創(chuàng)建這個字典輸出結(jié)果與原先代碼一致。示例代碼如下版本為無序字典有序字典輸出的結(jié)果為無序字典有序字典默認字典是內(nèi)建類的一個子類,第一個參數(shù)為屬性提供初始值,默認為。 ??字典(dict)結(jié)構(gòu)是Python中常用的數(shù)據(jù)結(jié)構(gòu),筆者結(jié)合自己的實際使用經(jīng)驗,對字典方面的相關(guān)知識做個小結(jié),希望能對讀者一些啟發(fā)~ 創(chuàng)建字典 ??常見的字典創(chuàng)建方法就是先建立一個空字典,然后逐一...

    BoYang 評論0 收藏0
  • Python實用技法第6篇:讓字典保持有序

    摘要:上一篇文章實用技法第篇一鍵多值字典下一篇文章實用技法第篇字典上對數(shù)據(jù)執(zhí)行計算求最小值最大值排序需求 上一篇文章:Python實用技法第5篇:一鍵多值字典下一篇文章:Python實用技法第7篇:字典上對數(shù)據(jù)執(zhí)行計算:求最小值、最大值、排序 1、需求

    scwang90 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<