命名元组 (namedtuple)
创建命名元组
field_names:元组各个元素的名称,也就是属性名称。
比如:
collections.namedtuple("Point",["x","y"])
这样就创建了一个叫做Point的命名元组类,它拥有两个属性x,y。
第二个参数 [“x”,“y”]也可以写成 “x y"或者"x,y” ,即用空格或者逗号隔开属性名
即:
collections.namedtuple("Point","x y")
collections.namedtuple("Point","x,y")
我们可以将其赋值给一个变量:
Point = collections.namedtuple("Point","x,y")
#变量名不一定要和第一个参数相同
p = collections.namedtuple("Point","x,y")
以上得到的变量Point或者p并不直接是一个元组对象,它只是一个类,如果要创建它的实例,则需要像创建类实例一样调用它:
p1 = Point(x = 0, y = 0)
p2 = p(x = 1, y = 1)
这样就创建了两个实例p1,p2,他们的内容分别是x = 0,y = 0,x = 1,y = 1。
访问命名元组的元素
print(p1[0])
print(p1[1])
得到的结果:
0
0
当然,命名元组也可以通过属性访问:
print(p2.x)
print(p2.y)
得到的结果:
1
1
修改元素
比如:
p1 = p1._replace(x = 1) #将p1的x值从0换到1
- 创建一个叫做Point的命名元组类,属性:x、y
- 给x、y赋初始值为0
- 修改Point元组元素,将x的值从0换到1
- 修改Point元组元素,将y的值从0换到1
- 打印输出元组属性元素值
友情提示:def函数需要return
测试说明
输出结果:
当前位置:x = 0,y = 0
当前位置:x = 1,y = 0
当前位置:x = 1,y = 1