2.Python命名元组

本文介绍了Python命名元组,作为元组的增强版,它提供了更易读的属性访问方式,增强了代码的可读性和维护性。通过`collections.namedtuple`函数创建命名元组类型,例如`Student`,然后可以通过属性直接访问元素,如`s.name`。虽然本质上仍是元组,但在需要元组的地方,命名元组同样适用。
摘要由CSDN通过智能技术生成

学习命名元组之前,我们先来熟悉一下元组:

命名元组

在我们学习元组的时候,取元组内部的元素都是同下表索引来进行取值,比如一个元组中包含了三个元素:

    tu=('小静','25','喜欢学习'),
    分别为:命名,年龄,爱好。
    需要取值都是tu[0],tu[1],tu[2]

那么如果程序中充斥了大量的这种没有意义的索引数字,则会影响代码的可读性。感觉下标取值不够人性化,可不可以像字典一样取值人性化?
下标操作通常会让代码表意不清晰,并且非常依赖记录的结构,即很依赖索引数值,添加了新的列的时候你的代码可能就会出错了,而且使得你的代码难以阅读

方式一:

    name=0
    age=1
    hobby=2
    
    tu[name]   #取姓名
    tu[age]    #取年龄
    tu[hobby]   #取爱好

则此时就可以通过这种见名知意的方式来获取所需值。

方式二:

命名元组(利用 collections 模块中的 namedtuple 函数)

namedtuple 接受两个参数,第一个是创建类型的名称,第二个是列表

from collections import namedtuple
#创建元祖类 类名和列表属性
Student = namedtuple('Student',['name','age','hobby'])

#创建对象为属性赋值
stu1 = Student('小静','25','学习')


print (stu1.age)    #25

stu2 = Student('静静','18','运动')
print (stu2.name)   #静静

namedtuple 函数这里接收两个参数,第一个参数为要创建类型的名称,第二个参数是一个列表,代表了每一个索引的名字。当建立完这个 Student 类之后,就可以使用正常的构造方法来构造新的对象如 s,并且可以直接通过访问属性的方式来访问所需要的值。
此时使用isinstance函数对比内置的tuple:

>>> isinstance(s, tuple)
True

可见用namedtuple构造出来的类其本质就是一个tuple元组,所以仍然可以使用下标的方式来访问属性。并且在任何要求类型为元组的地方都可以使用这个namedtuple。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值