Python collections模塊使用方法詳解
一、collections模塊
1.函數(shù)namedtuple
(1)作用:tuple類型,是一個(gè)可命名的tuple
(2)格式:collections(列表名稱,列表)
(3)返回值:一個(gè)含有列表的類
(4)例子:
import collections # help(collections.namedtuple) Point = collections.namedtuple("Point",['x','y']) p = Point(15,45) print(p.x+p.y) print(p[0]+p[1]) #支持索引等 #應(yīng)用舉例 Circle = collections.namedtuple('Circle',['x','y','r']) circle = Circle(14,15,45) propotion = circle[2]*circle[2]*3.141596 print("圓的面積為",propotion)
2.函數(shù)deque
(1)作用:比較方便的解決了頻繁刪除插入帶來(lái)的效率問(wèn)題
(2)格式:deque(列表)
(3)返回值:列表
(4)例子:
q = collections.deque(['a','b','c']) print(q) q.append('sada') q.appendleft('left') print(q) help(collections.deque)
3.函數(shù):defaultdict
(1)作用:當(dāng)讀取dict不存在的屬性時(shí),會(huì)返回默認(rèn)值
(2)格式:collections.defaultdict(函數(shù))
(3)返回值:返回括號(hào)里的函數(shù)
(4)例子:
我們定義一個(gè)字典,但是當(dāng)我們打印一個(gè)不存在的索引的時(shí)候,會(huì)報(bào)錯(cuò),因此我們?cè)诙x一個(gè)函數(shù),當(dāng)索引不存在的時(shí)候讓他返回這個(gè)函數(shù)。
這個(gè)類似于我們使用:
try...except...這個(gè)關(guān)鍵字的用法
d1 = {"one":1,"two":2,"three":3} print("four") #上面的會(huì)報(bào)錯(cuò),下面的就會(huì)返回函數(shù),告訴我們錯(cuò)了 func = lambda:"錯(cuò)了" d2 = collections.defaultdict(func) d2['one']=1 d2['two']=2 print(d2['four'])
4.函數(shù)Couter
(1)作用:統(tǒng)計(jì)字符串的個(gè)數(shù)
(2)格式:collections.Counter()
(3)返回值:可迭代內(nèi)容的字典的Counter類
(4)例子:
list1 = collections.Counter("aaabbbccc") print(list1) list2 = collections.Counter(['abc','sad','sad','abc','abc','ffds']) print(list2)
(5)總結(jié):括號(hào)內(nèi)的內(nèi)容必須是可迭代的才可以進(jìn)行統(tǒng)計(jì),這里這兩個(gè)例子不一樣,第一個(gè)統(tǒng)計(jì)的時(shí)字符串的字母?jìng)€(gè)數(shù),第二個(gè)統(tǒng)計(jì)的列表中的元素重復(fù)個(gè)數(shù),符合我們對(duì)可迭代的理解。
二、源碼
d21_1_collections_module
地址:https://github.com/ruigege66/Python_learning/blob/master/d21_1_collections_module
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python爬蟲實(shí)戰(zhàn)演練之采集糗事百科段子數(shù)據(jù)
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python采集糗事百科段子的數(shù)據(jù),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2021-10-10使用Python的Twisted框架構(gòu)建非阻塞下載程序的實(shí)例教程
Twisted的異步工作模式使其在非阻塞情況下可以擁有較高的性能,這里我們來(lái)看一下使用Python的Twisted框架構(gòu)建非阻塞下載程序的實(shí)例教程,包括服務(wù)器端與客戶端的實(shí)踐.2016-05-05Tensorflow 實(shí)現(xiàn)線性回歸模型的示例代碼
這篇文章主要介紹了Tensorflow 實(shí)現(xiàn)線性回歸模型,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Python代理抓取并驗(yàn)證使用多線程實(shí)現(xiàn)
這里沒有使用隊(duì)列只是采用多線程分發(fā)對(duì)代理量不大的網(wǎng)頁(yè)還行但是幾百幾千性能就很差了,感興趣的朋友可以了解下,希望對(duì)你有所幫助2013-05-05Django 前后臺(tái)的數(shù)據(jù)傳遞的方法
本篇文章主要介紹了Django 前后臺(tái)的數(shù)據(jù)傳遞的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08