python中的命名元組namedtuple
阿新 • • 發佈:2018-12-30
namedtuple是繼承自tuple的子類。namedtuple建立一個和tuple類似的物件,而且物件擁有可訪問的屬性
可利用collections.namedtuple構建一個簡單的類。
from collections import namedtuple # 定義一個namedtuple型別User,幷包含name,sex和age屬性。 User = namedtuple('User', ['name', 'sex', 'age']) # 建立一個User物件 user = User(name='kongxx', sex='male', age=21) # 也可以通過一個list來建立一個User物件,這裡注意需要使用"_make"方法 user = User._make(['kongxx', 'male', 21]) print(user) # User(name='user', sex='male', age=21) # 獲取使用者的屬性 print(user.name) print(user.sex) print(user.age) # 修改物件屬性,注意要使用"_replace"方法 user = user._replace(age=22) print(user) # User(name='user', sex='male', age=22) # 將User物件轉換成字典,注意要使用"_asdict" print(user._asdict()) # OrderedDict([('name', 'kongxx'), ('sex', 'male'), ('age', 22)])
namedtuple類位於Collections模組中,有了namedtuple後通過屬性訪問資料能夠讓我們的程式碼更加的直觀更好維護,下面就來簡單講解Python程式設計中namedtuple類的用法
Python的Collections模組提供了不少好用的資料容器型別,其中一個精品當屬namedtuple。
namedtuple能夠用來建立類似於元祖的資料型別,除了能夠用索引來訪問資料,能夠迭代,更能夠方便的通過屬性名來訪問資料。
在python中,傳統的tuple類似於陣列,只能通過下標來訪問各個元素,我們還需要註釋每個下標代表什麼資料。通過使用namedtuple,每個元素有了自己的名字,類似於C語言中的struct,這樣資料的意義就可以一目瞭然了。當然,宣告namedtuple是非常簡單方便的。
程式碼示例如下:
類似於tuple,它的屬性也是不可變的:
能夠方便的轉換成OrderedDict:
方法返回多個值得時候,其實更好的是返回namedtuple的結果,這樣程式的邏輯會更加的清晰和好維護:
相比tuple,dictionary,namedtuple略微有點綜合體的意味:直觀、使用方便,牆裂建議大家在合適的時候多用用namedtuple。