为元组中的每个元素命名,提高程序可读性

案例:
学生信息系统中数据为固定格式:{名字,年龄,性别,邮箱.....}

(元组优势:存储空间小,访问速度快)
学生数量很大为了减小存储开销,对每个学生信息用元组表示:

('jim',16,'male','jim@qq.com')
('lilei',18,'male','lilei@qq.com')
('lucy',17,'female','lucy@qq.com')

但是我们使用索引访问,大量使用索引降低了程序的可读性,如何解决这个问题

方案一:定义类似其他语言的枚举类型,也就是定义一系列数值常量
方案二:使用标准库中的collections.namedtuple代替内置tuple

from collections import namedtuple

student = ('jim',16,'male','jim@qq.com')

print(student[0],student[2])

# 方案一

NAME, AGE, sex, EMAIL = range(4)

print(student[NAME],student[EMAIL])

# 方案二
# namedtuple返回一个内置元组的子类,
# 第一个参数是新创建子类的类名,第二个参数是一系列名字,对应每个索引的名字
# 相当于一个类的工厂
# 开销仅比内置元组大一点
Student = namedtuple('Student',('name', 'age', 'sex', 'email'))
s1 = Student('jim',16,'male','jim@qq.com')
s2 = Student(name='lilei',age=18,sex='male',email='lilei@qq.com')
print(s1.email)
print(s2.name)
print(isinstance(s1,tuple))
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容