collections.namedtuple 是乙個工廠函式,它可以用來構建乙個帶欄位名的元組和乙個有名字的類。
注意:用 namedtuple 構建的類的例項所消耗的記憶體跟元組是一樣的。
from collections import namedtuple
city = namedtuple(
'city'
,'name country population coordinates'
)tokyo = city(
'tokyo'
,'jp'
,36.933,(
35,139)
)tokyo # city(name='tokyo', country='jp', population=36.933, coordinates=(35, 139))
tokyo.population # 36.933
建立乙個具名元組需要兩個引數,乙個是類名,另乙個是類的各個欄位的名字。後者可以是由數個字串組成的可迭代物件,或者是由空格分隔開的欄位名組成的字串。
存放在對應欄位裡的資料要以一串引數的形式傳入到建構函式中。
可以通過欄位名或者位置來獲取乙個欄位的資訊。
city._fields # ('name', 'country', 'population', 'coordinates')
latlong = namedtuple(
'latlong'
,'lat long'
)delhi_data =
('delhi ncr'
,'in'
,21.935
, latlong(28,
77))delhi = city._make(delhi_data)
delhi._asdict(
)# ordereddict([('name', 'delhi ncr'),
# ('country', 'in'),
# ('population', 21.935),
# ('coordinates', latlong(lat=28, long=77))])
_fields 屬性是乙個包含這個類所有欄位名稱的元組。
用 _make() 通過接受乙個可迭代物件來生成這個類的乙個例項,它的作用跟 city(*delhi_data) 是一樣的。
_asdict() 把具名元組以 collections.ordereddict 的形式返回。
Python namedtuple 具名元組
python中的tuple是乙個非常高效的集合物件,但是我們只能通過索引的方式訪問這個集合中的元素,比如下面的 bob bob 30,male print representation bob jane jane 29,female print field by index jane 0 for p...
具名元組 namedtuple
作用 命名元組賦予每個位置乙個含義,提供可讀性和自文件性。它們可以用於任何普通元組,並新增了通過名字獲取值的能力,通過索引值也是可以的。collections.namedtuple typename,field names,rename false,defaults none,module none...
Python namedtuple 具名元組
本文主要介紹namedtuple型別物件的建立以及對應屬性的訪問。namedtuple位於python內建模組collections,屬於tuple子類,類似於c c 中的struct結構體,namedtuple中每個元素具有乙個名稱。namedtuple型別宣告 collections.named...