举例
假设某系统存储学生信息,具有固定的格式,这时候可以采用元组的方式进行数据的存储。采用元组的方式可以节省存储的开销,且访问速度很快。
但是这样具有的问题是:想要获取元组中的某一项的值(例如姓名),就需要使用元组[索引]的形式,这样的话如果程序比较复杂,name程序中将会大量出现0、1、4、2这种索引值,如果这时候没有程序注释的话可读性就很差且维护困难。
类似于C语言的枚举类型
通过将索引值赋给变量实现为每个元素命名。
NAME, AGE, SEX, EMAIL = xrange(4)
student = ('tom', 22, 'man', '123456789')
'''name'''
print student[NAME]
'''age'''
print student[AGE]
'''sex'''
print student[SEX]
'''email'''
print student[EMAIL]
使用标准库中collections.namedtuple替代内置tuple
from collections import namedtuple
student = namedtuple('student', ['name', 'age', 'sex', 'email'])
s = student(name='mile', age=12, sex='man', email='12234455')
print s.name, s.email, s.age, s.sex
namedtuple是内置tuple的子类,所以在任何使用tuple的地方都可以使用namedtuple。