写点什么

Python——命名元组 (namedtuple)

用户头像
在即
关注
发布于: 3 小时前
Python——命名元组 (namedtuple)

命名元组 (namedtuple)

完成对命名元组的简单操作。


1.命名元组 (namedtuple)


Python 中提供了基础的不可变数据结构元组 tuple,对元组元素的访问需通过索引来完成,对此需要熟记每个下标对应的具体含义。如果元素数量一多,要记清楚这些东西就会比较麻烦了,于是就出现了命名元组 namedtuple。


2.创建命名元组

命名元组的构造函数接受两个参数 typename,field_names:

typename:元组的名字;


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。


3.访问命名元组的元素


  • 通过 collections.namedtuple 创建的命名元组类,实际上是元组类的子类,因此命名元组也可以通过索引访问元素:

print(p1[0])

print(p1[1])

得到的结果:

0

0


当然,命名元组也可以通过属性访问:

print(p2.x)

print(p2.y)


得到的结果:

1

1


4.修改元素


  • 如果需要修改元组的元素,则不能简单的使用 p1.x = 1,需要调用成员函数 _replace(),它会返回一个包含新值的新实例


比如:

p1 = p1._replace(x = 1) #将 p1 的 x 值从 0 换到 1


编程要求


具体要求如下:


  1. 创建一个叫做 Point 的命名元组类,属性:x、y

  2. 给 x、y 赋初始值为 0

  3. 修改 Point 元组元素,将 x 的值从 0 换到 1

  4. 修改 Point 元组元素,将 y 的值从 0 换到 1

  5. 打印输出元组属性元素值


友情提示:def 函数需要 return


测试说明

输出结果:

当前位置:x = 0,y = 0

当前位置:x = 1,y = 0

当前位置:x = 1,y = 1


上代码:

retunrn p


//如果注释理解有误,请大佬们多多评论指教!!

发布于: 3 小时前阅读数: 2
用户头像

在即

关注

记录学习进度 2021.02.27 加入

一个入门小白白!

评论

发布
暂无评论
Python——命名元组 (namedtuple)