Python具名元組

2021-10-24 19:57:16 字數 1291 閱讀 9882

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