(本文大部分內容來源於此鏈接的文章,我對部分內容做了一些改動,方便自己日後複習,若有侵權,請聯繫我,我會將此文刪除,謝謝)
collections模塊的namedtuple函數用來構造一個帶名稱的元組。具名元組的實例與普通元組的實例相比,它們消耗的內存一樣多。
使用格式:
collections.namedtuple(typename, field_names, verbose=False, rename=False)
參數介紹:
- typename:元組名稱
- field_names:(具名元組中的)元素名稱
- verbose:不用管
- rename:默認爲Fasle。若元素名稱中含有Python的關鍵字,則需設置爲rename=True
返回值:
返回一個具名元組子類typename。
下面代碼爲【定義一個具名元組及創建一個具名元組的實例】的一個例子:
>>> from collections import namedtuple
>>> User = namedtuple('User', ['name', 'age', 'id']) # 第二個參數也可以爲字符串形式->'name age id'
>>> user = User('xw', '23', '1501144231')
>>> user
User(name='xw', age='23', id='1501144231')
>>> user.age
'23'
>>> user.id
'1501144231'
>>> user[1]
'23'
>>> user[2]
'1501144231'
從上述代碼中可以看出定義一個具名元組的規則:創建一個具名元組,需要兩個參數:【類名】和【元組中各個元素的名稱】,後者可以是【由多個字符串組成的可迭代對象】或【由空格分隔開的字段名組成的字符串】。具名元組可以通過字段名或位置來獲取一個字段的信息。
具名元組的特有屬性
- 類屬性
_fields
:包含具名元組類所有字段名的元組 - 類方法
_make(iterable)
:接受一個可迭代對象iterable來生成一個具名元組的實例 - 實例方法
_asdict()
:將具名元組以字典dict的形式返回,這樣可以將具名元組的信息友好的展示出來
>>> from collections import namedtuple
>>> User = namedtuple('User', ['name', 'sex', 'age']) # 定義一個名爲User的具名元組
>>> user = User('xw', 'male', '23')
>>> user._fields
('name', 'sex', 'age')
>>> user1 = User._make(['xw', 'male', '23']) # 通過"_make"方法,使用列表來創建一個具名元組User的實例
>>> user1
User(name='xw', sex='male', age='23')
>>> user.name # 獲取具名元組對象的屬性
'xw'
>>> user.sex # 獲取具名元組對象的屬性
'male'
>>> user = user._replace(age=24) # 使用"_replace"方法來修改對象屬性,使用關鍵字參數修改
>>> user
User(name='xw', sex='male', age=24)
>>> user._asdict() # 使用"_asdict"將具名元組轉換爲普通字典
{'name': 'xw', 'sex': 'male', 'age': 24}
```ju
(本文大部分內容來源於[此鏈接](https://www.runoob.com/note/25726)的文章,我對部分內容做了一些改動,方便自己日後複習,若有侵權,請聯繫我,我會將此文刪除,謝謝)