一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python的collections模塊中的OrderedDict有序字典

Python的collections模塊中的OrderedDict有序字典

2020-09-01 09:04CIZIXS Python

字典是無序的,但是collections的OrderedDict類為我們提供了一個有序的字典結構,名副其實的Ordered+Dict,下面通過兩個例子來簡單了解下Python的collections模塊中的OrderedDict有序字典:

如同這個數據結構的名稱所說的那樣,它記錄了每個鍵值對添加的順序。

?
1
2
3
4
5
6
d = OrderedDict()
d['a'] = 1
d['b'] = 10
d['c'] = 8
for letter in d:
  print letter

輸出:   

?
1
2
3
a
b
c

如果初始化的時候同時傳入多個參數,它們的順序是隨機的,不會按照位置順序存儲。

?
1
2
>>> d = OrderedDict(a=1, b=2, c=3)
OrderedDict([('a', 1), ('c', 3), ('b', 2)])

除了和正常的 dict 相同的方法之外,OrderedDict 還提供了和順序相關的操作: + popitem(): 返回最后一個插入的鍵值對,如果 popitem(last=False) 將返回第一個插入的鍵值對 + reversed:返回一個逆序的 OrderedDict

實例
其實,OrderedDict可以看作是一個字典子類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import collections
print 'Regular dictionary:'
d = {}
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
for k, v in d.items():
  print k, v
print '\nOrderDict:'
d = collections.OrderedDict()
d['a'] = 'A'
d['b'] = 'B'
d['c'] = 'C'
for k, v in d.items():
  print k, v

常規dict并不跟蹤插入順序,迭代處理會根據鍵在散列表中存儲的順序來生成值。在OrderDict中則相反,它會記住元素插入的順序,并在創建迭代器時使用這個順序。

?
1
2
3
4
5
6
7
8
Regular dictionary:
a A
c C
b B
OrderDict:
a A
b B
c C

常規dict在檢查相等性是會查看其內容,OrderDict中還會考慮元素增加的順序。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 操破苍穹h| 天天白天天谢天天啦 | ak福利午夜在线观看 | 高黄h文各种play | 五月色综合婷婷综合俺来也 | 国产99视频精品免费视频免里 | 久久综合久久伊人 | 欧美综合在线 | 奇米狠狠色 | 精品久久99麻豆蜜桃666 | 亚洲啊v | 国产午夜精品久久理论片小说 | 32pao强力打造免费高速高清 | 国产精品反差婊在线观看 | 男人天堂网www | 第一国内永久免费福利视频 | 含羞草传媒网站免费进入欢迎 | 俄罗斯激情性孕妇孕交大全 | 无人区大片免费播放器 | 欧美日韩va | 狠狠色狠狠色综合日日小蛇 | 精品人伦一区二区三区潘金莲 | 3d动漫美女被吸乳羞羞有 | 高清男的插曲女的 欢迎你老狼 | 国产啪精品视频网给免丝袜 | 韩国办公室激情 | 国产成人久久精品一区二区三区 | 九九精品久久 | 亚洲AV人无码综合在线观看蜜桃 | 成人观看免费大片在线观看 | 亚洲午夜久久久 | 亚洲 小说 欧美 激情 另类 | 欧美亚洲影院 | 九九热这里只有精品视频免费 | 99久久久无码国产精品 | 91麻豆网址| 2022天天干 | 国产成人精品日本亚洲网址 | 久久成人国产精品一区二区 | 美女扒开屁股让我桶免费 | 亚洲国产精品久久丫 |