1. 程式人生 > >Python連載21-collections模組

Python連載21-collections模組

一、collections模組

1.函式namedtuple

(1)作用:tuple型別,是一個可命名的tuple

(2)格式:collections(列表名稱,列表)

(3)​返回值:一個含有列表的類

(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])

#支援索引等

#應用舉例

Circle = collections.namedtuple('Circle',['x','y','r'])

circle = Circle(14,15,45)

propotion = circle[2]*circle[2]*3.141596

print("圓的面積為",propotion)

 

2.函式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.函式:defaultdict

(1)作用:當讀取dict不存在的屬性時,會返回預設值

(2)格式:collections.defaultdict(函式)

(3)​返回值:返回括號裡的函式

(4)例子​:

我們定義一個字典,但是當我們列印一個不存在的索引的時候,會報錯,因此我們在定義一個函式,當索引不存在的時候讓他返回這個函式。

這個類似於我們使用​:

try...except...這個關鍵字的用法

 

d1 = {"one":1,"two":2,"three":3}

print("four")

#上面的會報錯,下面的就會返回函式,告訴我們錯了

func = lambda:"錯了"

d2 = collections.defaultdict(func)

d2['one']=1

d2['two']=2

print(d2['four'])

4.函式Couter

(1)作用:統計字串的個數

(2)格式:collections.Counter()

(3)返回值:可迭代內容的字典的Counter類

(4)例子:

 

list1 = collections.Counter("aaabbbccc")

print(list1)

list2 = collections.Counter(['abc','sad','sad','abc','abc','ffds'])

print(list2)

 

 

(5)總結​:括號內的內容必須是可迭代的才可以進行統計,這裡這兩個例子不一樣,第一個統計的時字串的字母個數,第二個統計的列表中的元素重複個數,符合我們對可迭代的​理解。

二、原始碼:d21_1_collections_module

地址:https://github.com/ruigege66/Python_learning/blob/master/d21_1_collections_module

2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)

3.部落格園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公眾號:傅立葉變換,後臺回覆”禮包“,獲取大資料學習資料

&n