欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

怎么使用Python內(nèi)置庫(kù)collections-創(chuàng)新互聯(lián)

這篇文章主要講解了“怎么使用Python內(nèi)置庫(kù)collections”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么使用Python內(nèi)置庫(kù)collections”吧!

成都創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)南開,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

Python中有很多好用的內(nèi)置的模塊,比如datatime、json等等,本文介紹下collections模塊的使用。使用collections模塊時(shí),首先要導(dǎo)入模塊,如下所示:

import collections

我們首先介紹下OrderedDict模塊的使用。在Python3.5(含)中字典是無序的,即不會(huì)按照使用者插入的順序排序,如下所示,打印結(jié)果我們發(fā)現(xiàn)輸出并沒有按輸入的順序輸出。

x = dict() # 無序字典
x['stock1'] = "600213"
x['stock2'] = "600223"
x['stock3'] = "600233"
print(x) # {'stock1': '600213', 'stock3': '600233', 'stock2': '600223'}

使用operator.itemgetter對(duì)字典排序后,返回的是一個(gè)list變量,而不是字典,倘若再將這個(gè)list轉(zhuǎn)換為字典后,會(huì)發(fā)現(xiàn)又變回了無序字典。如下所示:

x = {"stock1": "600213", "stock2": "600223", "stock3": "600233"}
sorted_x = sorted(x.items(), key=operator.itemgetter(0))
print(type(x)) # <class 'dict'>
print(type(sorted_x)) # <class 'list'>
print(dict(sorted_x)) # {'stock1': '600213', 'stock3': '600233', 'stock2': '600223'}

如果要使字典保持我們插入的順序怎么辦呢?可以用collections.OrderedDict來初始化字典,使無序字典成為有序字典,如下所示:

x = OrderedDict()
x['stock1'] = "600213"
x['stock2'] = "600223"
x['stock3'] = "600233"
print(x) # OrderedDict([('stock1', '600213'), ('stock2', '600223'), ('stock3', '600233')])
print(type(x)) # <class 'collections.OrderedDict'>

OrderedDict生成的字典支持如下屬性:

# values() 獲取字典所有的value,返回一個(gè)列表
print(x.values()) # odict_values(['600213', '600223', '600233'])
# setdefault() 獲取指定key的value,如果key不存在,則創(chuàng)建
val = x.setdefault('stock4')
print(val, x) # None OrderedDict([('stock1', '600213'), ('stock2', '600223'), ('stock3', '600233'), ('stock4', None)])
# popitem() 按照后進(jìn)先出原則,刪除最后加入的元素,返回key-value
print(x.popitem(), x) # ('stock4', None) OrderedDict([('stock1', '600213'), ('stock2', '600223'), ('stock3', '600233')])
# pop() 獲取指定key的value,并在字典中刪除
k = x.pop('stock1')
print(k, x) # 600213 OrderedDict([('stock2', '600223'), ('stock3', '600233')])
# keys() 獲取字典所有的key
print(x.keys())
# clear() 清空有序字典
#x.clear()
# copy() 拷貝
new_dic = x.copy()
print(new_dic)
# items(返回由“鍵值對(duì)組成元素“的列表)
print(x.items())
# fromkeys() 指定一個(gè)列表,把列表中的值作為字典的key, 生成一個(gè)字典
dic = OrderedDict()
name = ['allen', 'belln', 'cllen']
print(dic.fromkeys(name)) # OrderedDict([('allen', None), ('belln', None), ('cllen', None)])
print(dic.fromkeys(name, 20)) # OrderedDict([('allen', 20), ('belln', 20), ('cllen', 20)])

從Python 3.6開始,Python的字典底層機(jī)制更改后已經(jīng)變成為有序字典了。雖然collections.OrderedDict的使用價(jià)值降低了,不過collections中的defaultdict仍然很有用,它可以實(shí)現(xiàn)一鍵多值的字典,如下所示:

y = defaultdict(list) # 一鍵多值字典使用defaultdict
y["stock"].append("600213")
y["stock"].append("600223")
y["stock"].append("600413")
y["stock"].append("600513")
y["stock"].append("600225")
y["stock"].append("600273")
print(y) # defaultdict(<class 'list'>, {'stock': ['600213', '600223', '600413', '600513', '600225', '600273']})

接下來再介紹下collections中的Counter。Counter是一個(gè)簡(jiǎn)單的計(jì)數(shù)器,目的是用來跟蹤值出現(xiàn)的次數(shù)。Counter以字典的鍵值對(duì)形式存儲(chǔ)值出現(xiàn)的次數(shù),如下所示:

c_dict = Counter('yyydadyyyaadadsaaaxxxx')
print(c_dict) # Counter({'a': 7, 'y': 6, 'd': 4, 'x': 4, 's': 1})

當(dāng)然也可以使用for循環(huán)實(shí)現(xiàn)跟蹤值出現(xiàn)的次數(shù),如下所示,不過使用Counter更加高效。

data = 'yyydadyyyaadadsaaaxxxx'
val_cnt = {}
for i in data:
 i_cnt = val_cnt.get(i,0) # 查找鍵的值
 val_cnt[i] = i_cnt + 1
print(val_cnt) # {'y': 6, 'd': 4, 'a': 7, 's': 1, 'x': 4}
print(val_cnt.get('a')) # 7

最后我們?cè)俳榻B一下ChainMap,它可以加速字典的合并。通常我們合并字典的方式如下所示:

dicta = {i: i + 1 for i in range(1, 100, 2)}
dictb = {i: i + 2 for i in range(1, 100, 2)}
dictc = {i: i + 3 for i in range(1, 100, 2)}
dictd = {i: i + 4 for i in range(1, 100, 2)}
dic_total = dicta.copy()
dic_total.update(dictb)
dic_total.update(dictc)
dic_total.update(dictd)
print(dic_total)
print(dic_total.get(3, 0))

使用更高效的ChainMap方法,如下所示:

dic_total = ChainMap(dicta, dictb, dictc, dictd)

感謝各位的閱讀,以上就是“怎么使用Python內(nèi)置庫(kù)collections”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)怎么使用Python內(nèi)置庫(kù)collections這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

本文題目:怎么使用Python內(nèi)置庫(kù)collections-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)鏈接:http://aaarwkj.com/article28/cocccp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站改版、網(wǎng)站收錄網(wǎng)站維護(hù)、App設(shè)計(jì)、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
色哟哟网站在线观看入口| 欧美一区日韩二区国产三区| 国产精品1区2区久久久| 久久精品免费激情视频| 亚洲国产成人精品av在线| 麻豆精品国产一区二区91| 一区二区蜜桃在线观看| 精品国产18禁99久久久久久| 欧美日韩精品不卡在线播放| 欧美国产综合欧美一区二区三区| 妞干网视频这里只有精品| 人妻操人人妻中出av| 国产一区二区麻豆视频| 韩国午夜理伦三级好看| 日本中文字幕一区二区视频| 日本特黄高清免费大片| 久久热久久热在线视频| 黄色av链接在线观看| 看夫妻性生活免费视频| 日韩不卡免费一区二区三区视频| 亚洲国产精品自拍视频| 精品人妻av中文字幕乱| 国产福利传媒在线观看| 色六月婷婷六月久久六月| 少妇按摩高潮呻吟av| 欧美 国产 综合 日韩| 亚洲av日韩高清在线观看 | 97高清视频在线观看| 色偷偷亚洲精品一区二区| 亚洲午夜黄色生活片观看| 高清av中文免费在线| 亚洲丰满性感美女av| 黑人精品一区二区三区| 高潮的毛片激情久久精品| 在线播放亚洲一区二区三区| 日韩亚洲一区在线观看| 东京热男人的天堂视频| 99久久精彩免费视频| 男人天堂av在线资源| 日韩国产在线一区二区| 国产高清内射一级一片高清视频|