使用元组的优势是:速度快、存储空间小、数据安全
但是使用元组只能使用下标的方式访问,那么如何给元素命名,来提高程序的可读性
1. 定义类似C语言中的枚举类型,将下标作为常数
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
NAME, AGE, SEX, EMAIL = range(4)
data = ('zhangyi', 18, 'male', 'zy251021@163.com')
print(data[NAME])
运行结果:
Geek-Mac:Downloads zhangyi$ python3 Nice.py
zhangyi
2. 使用标准库中的 collections.namedtuple
替代内置元组
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
from collections import namedtuple
data = namedtuple('data', ['name', 'age', 'sex', 'email'])
# 位置传参
s = data('zhangyi', 18, 'male', 'zy251021@163.com')
# 关键字传参
s1 = data(name='zhangyi', age=18, sex='male', email='zy251021@163.com')
print(s, s1, s.name, s1.email)
运行结果:
Geek-Mac:Downloads zhangyi$ python3 Nice.py
data(name='zhangyi', age=18, sex='male', email='zy251021@163.com') data(name='zhangyi', age=18, sex='male', email='zy251021@163.com') zhangyi zy251021@163.com
namedtuple
访问的方式是以类对象的方式访问,相当于一个类工厂,它是内置 tuple
的一个子类,在任何使用 tuple
的地方都可以使用 namedtuple