NamedTuple命名元组
NamedTuple命名元组是Python中的一种数据结构,它是一种特殊的元组,其中的每个元素都有一个名称,可以用这个名称来访问元组中的值,而不是通过索引。NamedTuple可以用来表示一个对象,其中的属性可以通过属性名称访问,而不是通过索引。
使用方法
使用NamedTuple命名元组需要先导入collections模块,使用collections.namedtuple()函数来创建一个NamedTuple类,该函数需要传入两个参数,一个是类名,另一个是属性列表,比如:
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
这里创建了一个名为Point的NamedTuple类,其中包含两个属性x和y。
使用这个类就可以创建出Point对象,比如:
p1 = Point(1, 2)
这样就创建了一个Point对象,它的x属性值为1,y属性值为2。
可以用属性名称来访问Point对象中的值,比如:
print(p1.x) print(p1.y)
输出结果:
1 2
也可以使用索引来访问Point对象中的值,比如:
print(p1[0]) print(p1[1])
输出结果:
1 2
NamedTuple也可以用于更新对象的值,比如:
p2 = p1._replace(x=3)
这里将p1的x属性值更新为3,将更新后的对象赋值给p2。
可以使用属性名称来访问p2中的值,比如:
print(p2.x) print(p2.y)
输出结果:
3 2
NamedTuple也可以用于比较两个对象,比如:
p3 = Point(1, 2) print(p1 == p3)
输出结果:
True
可以看到,p1和p3的值都相同,比较结果为True。
NamedTuple也可以用于转换为字典,比如:
d = p1._asdict() print(d)
输出结果:
{'x': 1, 'y': 2}
可以看到,NamedTuple被转换为了一个字典,其中的键为属性名称,值为对应的属性值。