不要过度构建数据结构。尽量使用元组(以及命名元组)而不是对象。
——Guido van Rossum
某学生信息系统中的数据格式为固定格式:
(学号、姓名、性别、年龄)
为了减少内存开销,每个学生信息用元组表示:
(1, 'Tom', 'M', 20)
(2, 'Bob', 'M', 21)
(3, 'Lucy', 'F', 20)
如果使用元组则程序中会大量充斥着下标,影响程序可读性
>>> stu_tom = (1, 'Tom', 'M', 20)
>>> stu_bob = (2, 'Bob', 'M', 21)
>>> stu_lucy = (3, 'Lucy', 'F', 20)
>>> stu_bob[0]
2
>>> stu_tom[1]
'Tom'
>>> stu_lucy[2]
'F'
用命名元组就可以很好的解决这个问题
namedtuple第一个参数为该命名元组的名字,第二个参数为属性构成的列表
>>> from collections import namedtuple
>>> Student = namedtuple('Student', ['no', 'name', 'gender', 'age'])
>>> stu_tom = Student(1, 'Tom', 'M', 20)
>>> stu_bob = Student(2, 'Bob', 'M', 21)
>>> stu_lucy = Student(3, 'Lucy', 'F', 20)
>>> stu_bill = Student(no=4, name='Bill', gender='M', age=21)
>>> stu_bill.name
'Bill'
>>> stu_lucy.age
20
>>> stu_tom.gender
'M'
网友评论