Python学习笔记3

命名元组

collections.namedtuple(typename, field_names)

命名元组(namedtuple)是元组(tuple)的子类。既可以通过名称访问(使用**.** name),又可以通过位置访问([offset])。
参数field_names既可以是用空格或者逗号分隔域名的字符串,比如‘x y’或者‘x,y’,又可以是字符串列表,比如[‘x’,‘y’]。要注意的是域名不能以下划线“_”开头,也不能是Python保留的关键字。另外域名称不可以出现同名。

from collections import namedtuple
#建立一个Student命名元组,属性有姓名sname,语文成绩cscore,数学成绩mscore,英语成绩escore
Student = namedtuple('Student','sname, cscore, mscore, escore')

#分别记录Tom,Jack和Rose的成绩
Tom = Student('Tom', 90, 100, 80)
Jack = Student('Jack', 86, 95, 100)
Rose = Student('Rose', 85, 98, 87)
print('Student one:',Tom)
print("Jack's cscore:",Jack.cscore)
print("Rose's escore:",Rose[3])

运行结果如下图所示:
在这里插入图片描述
命名元组比类和字典占用的空间要小,又比列表开销的时间少。而且因为是元组的子类,它同样是不可变的。如果替换其中某些域的值时,会生成新的命名元组。

#新增Helen的信息
Helen = Jack._replace(sname = 'Helen')
print("Helen's info:",Helen)

运行结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值