欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-18 14:32:15
...

如何为元组中的每个元素命名,提高程序可读性?
实际案例

  • 学生信息系统中数据为固定格式:
    (名字,年龄,性别,邮箱地址,...)
  • 学生数量很大,为了减小存储开销,对每个学生信息用元组表示:
    ('Jim',16,'male','[email protected]')
    ('LiLei',1,'male','[email protected]')
    ('Lucy',16,'female','[email protected]')
    ...
  • 访问时,我们使用索引(index)访问,大量索引降低程序可读性.
    如何解决这个问题?

解决方案:

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

方案1:常量定义

NAME = 0
AGE = 1
SEX = 2
EMAIL = 3

或者:

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

方案2:namedtuple

from collections import namedtuple
Student = namedtuple('student',['name','age','sex','email'])
s = Student('Lucy',16,'female','[email protected]')

访问属性:
s.name
s.age
s.sex
s.email

测试大小

import sys
sys.getsizeof(s)
输出结果:80

sys.getsizeof(('Lucy',16,'female','[email protected]'))
输出结果:80

sys.getsizeof(Student)
输出结果:888

存储开销比普通元组大了一点点,大了定义Student命名元组的空间,即888。