Python中的tuple大家应该都非常熟悉了。它可以存储一个Python对象序列。与list不同的是,你不能改变tuple中元素的值。tuple的元素是通过索引进行访问的:
Tuple还有一个兄弟,叫namedtuple。虽然都是tuple,但是功能更为强大。对于namedtuple,你不必再通过索引值进行访问,你可以把它看做一个字典通过名字进行访问,只不过其中的值是不能改变的。
为了构造一个namedtuple需要两个参数,分别是tuple的名字和其中域的名字。比如在上例中,tuple的名字是“Animal”,它包括三个域,分别是“name”、“age”和“type”。
Namedtuple比普通tuple具有更好的可读性,可以使代码更易于维护。同时与字典相比,又更加的轻量和高效。但是有一点需要注意,就是namedtuple中的属性都是不可变的。任何尝试改变其属性值的操作都是非法的。
Namedtuple还有一个非常好的一点是,它与tuple是完全兼容的。也就是说,我们依然可以用索引去访问一个namedtuple。
转载自:
https://baijiahao.baidu.com/s?id=1613589944704758634&wfr=spider&for=pc