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)作用:比較方便的解決了頻繁刪除插入帶來的效率問題
(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í),會返回默認(rèn)值
(2)格式:collections.defaultdict(函數(shù))
(3)返回值:返回括號里的函數(shù)
(4)例子:
我們定義一個(gè)字典,但是當(dāng)我們打印一個(gè)不存在的索引的時(shí)候,會報(bào)錯(cuò),因此我們在定義一個(gè)函數(shù),當(dāng)索引不存在的時(shí)候讓他返回這個(gè)函數(shù)。
這個(gè)類似于我們使用:
try...except...這個(gè)關(guān)鍵字的用法
d1 = {"one":1,"two":2,"three":3}
print("four")
#上面的會報(bào)錯(cuò),下面的就會返回函數(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é):括號內(nèi)的內(nèi)容必須是可迭代的才可以進(jìn)行統(tǒng)計(jì),這里這兩個(gè)例子不一樣,第一個(gè)統(tǒng)計(jì)的時(shí)字符串的字母個(gè)數(shù),第二個(gè)統(tǒng)計(jì)的列表中的元素重復(fù)個(gè)數(shù),符合我們對可迭代的理解。
二、源碼
d21_1_collections_module
地址:https://github.com/ruigege66/Python_learning/blob/master/d21_1_collections_module
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
pycharm安裝深度學(xué)習(xí)pytorch的d2l包失敗問題解決
當(dāng)新生在學(xué)習(xí)pytorch時(shí),導(dǎo)入d2l_pytorch包總會遇到問題,下面這篇文章主要給大家介紹了關(guān)于pycharm安裝深度學(xué)習(xí)pytorch的d2l包失敗問題的解決方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03
解決python 兩個(gè)時(shí)間戳相減出現(xiàn)結(jié)果錯(cuò)誤的問題
這篇文章主要介紹了解決python 兩個(gè)時(shí)間戳相減出現(xiàn)結(jié)果錯(cuò)誤的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
關(guān)于Tensorflow使用CPU報(bào)錯(cuò)的解決方式
今天小編就為大家分享一篇關(guān)于Tensorflow使用CPU報(bào)錯(cuò)的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python 無限級分類樹狀結(jié)構(gòu)生成算法的實(shí)現(xiàn)
這篇文章主要介紹了Python 無限級分類樹狀結(jié)構(gòu)生成算法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01

