1. 程式人生 > 程式設計 >Python collections模組使用方法詳解

Python 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','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','abc','ffds'])
print(list2)

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

二、原始碼

d21_1_collections_module

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。