collections.namedtuple工厂函数
Posted hell-west-road
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了collections.namedtuple工厂函数相关的知识,希望对你有一定的参考价值。
collections.namedtuple是一个工厂函数,它可以用来构建一个带字段名的元组和一个有名字的类——这个带名字的类对调试程序有很大帮助。
以往存在一定量数据习惯以列表或json的方式保存,例如:
列表:
1 nodes = [ 2 [‘192.168.1.1‘, 22, ‘guest‘], 3 [‘192.168.1.2‘, 22, ‘guest‘], 4 ] 5 for i in nodes: 6 print(i[1])
列表的坏处是以数字作脚注,数据对应关系不直观
json:
1 nodes = [ 2 ‘ip‘: ‘192.168.1.1‘, ‘port‘: 22, ‘user‘: ‘guest‘, 3 ‘ip‘: ‘192.168.1.2‘, ‘port‘: 22, ‘user‘: ‘guest‘, 4 ] 5 for i in nodes: 6 print(i[‘user‘])
效率不算特别好,随着数量增大冗余字段名越多,相对比较占用内存
namedtuple:
1 myOpt = namedtuple(‘node‘, ‘ip port user‘) 2 nodes = [ 3 myOpt(‘192.168.1.1‘, 22, ‘guest‘), 4 myOpt(‘192.168.1.2‘, 22, ‘guest‘) 5 ] 6 for i in nodes: 7 print(i.user)
占用内存相对较小,而且字段名直观
以上是关于collections.namedtuple工厂函数的主要内容,如果未能解决你的问题,请参考以下文章
为啥我不能腌制一个 typing.NamedTuple 而我可以腌制一个 collections.namedtuple?
collections.namedtuple()命名序列元素
python 库整理: collections.namedtuple