(本文大部分内容来源于此链接的文章,我对部分内容做了一些改动,方便自己日后复习,若有侵权,请联系我,我会将此文删除,谢谢)
collections模块的namedtuple函数用来构造一个带名称的元组。具名元组的实例与普通元组的实例相比,它们消耗的内存一样多。
使用格式:
collections.namedtuple(typename, field_names, verbose=False, rename=False)
参数介绍:
返回值:
返回一个具名元组子类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)的文章,我对部分内容做了一些改动,方便自己日后复习,若有侵权,请联系我,我会将此文删除,谢谢)