python內建模組之collections

2021-10-06 18:08:10 字數 2056 閱讀 3594

namedtuple用來建立一種自定義的tuple物件,並且規定tuple元素的個數。並且用屬性而不是用索引來引用tuple的某個元素。這樣,用namedtuple可以很方便地定義一種資料型別

#建立

from collections import namedtuple

point =

namedtuple

('point',[

'x',

'y']

)#使用

p =point(1

,2)print

(p.x)

print

(isinstance

(p,point)

print

(isinstance

(p,tuple)

#列印結果

1true

true

#同樣的,用座標和半徑表示乙個圓

circle =

namedtuple

('circle',[

'x',

'y',

'r']

在資料量大的情況下,使用列表插入和刪除比較慢。使用deque是為了高效實現插入和刪除操作的雙向列表,適合用於佇列和棧。

from collections import deque

q =deque([

'a',

'b',

'c'])q.

('x')q.

('y'

)print

(q)#列印結果

deque([

'y',

'a',

'b',

'c',

'x']

)

使用字典的時候,如果引用的key不在,會報出keyerorr。如果希望key不存在時返回乙個預設值,可以使用defaultdict。

from collections import defaultdict

dict1 = defaultdict(

lambda

:'n/a'

)dict1[

'key1']=

'aa'

print

(dict1[

'key1'

]print

(dict1[

'key2'

]#列印結果

'aa'

'n/a'

注意的是,返回值是通過函式返回的,而函式在建立defaultdict物件時匯入

使用dict時,key是無序的。要保持dict的順序,可以用ordereddict

但要注意的是,ordereddict並不是按照key的屬性來排序的,而是按照輸入順序去排序的

from collections import ordereddict

dict1 =

dict([

('a',1

),('b',2

),('c',3

)])order_dict1 = ordereddict([(

'a',1)

,('b',2)

,('c',3)

])print

(dict1)

print

(order_dict1)

#列印結果

ordereddict([(

'a',1)

,('b',2)

,('c',3)

])

counter是乙個簡單的計數器

from collections import counter

c = counter(

)for ch in

'programming'

: c[ch]

= c[ch]+1

print

(c)#列印結果

counter(

)c.update(

'hello'

)print

(c)counter(

)#列印結果

python內建模組之random模組

import random print random.random 隨機 0 1 浮點數 print random.uniform 1,10 隨機指定範圍的浮點數 print random.randint 1,3 隨機整數1 3,包括3 print random.randrange 1,3 1 3隨...

python內建模組之XML模組

xml和json 一樣都是可以跨平台的,只是xml相比較,老一點 import xml.etree.elementtree as et a et.parse first xml.xml 載入乙個檔案 root a.getroot print root 乙個xml檔案 print root.tag x...

python內建模組之re模組

在python要想使用正則必須借助於模組,re就是其中之一 查詢字串中所有匹配到的字元,並返回乙個列表,沒有匹配資料則返回乙個空列表 import re re.findall 正規表示式 帶匹配的文字 根據正則匹配除所有符合條件的資料 res re.findall b eva jason jacks...