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...