1、实际案例
学生信息系统中数据为固定格式:
(名字,年龄,性别,邮箱地址,...)
学生数量很大为了减小存储开销,对每个学生信息用元组表示:
('Jim',16,'male','[email protected]'
(Li Lei',17,'male','[email protected]')
('Lucy',16,'female','[email protected]')
访问时,我们使用引索(index)访问,大量引索降低程序可读性,如何解决这个问题?
student = ('Jim',16,'male','[email protected]') #name print student[0] #age if student[1]>=18
2、解决方案
2.1 解决方案一:定义类似与其他语言的枚举类型,也就是定义一系列数值常量
把0、1、2、3赋给变量
student = ('Jim',16,'male','[email protected]'
NAME,AGE,SEX,EMAIL = xrange(4)
#name
print student[NAME]
#age
if student[AGE] >= 18:
# ...
#sex
if students[SEX] == 'male':
#....
2.2 解决方案二:使用标准库中collenctions.namedtuple替代内置touple,运行结果from collections import namedtuple Student = namedtuple('Student',['name','age','sex','email']) s = Student('Jim',16,'male','[email protected]')