一、命名元祖基本操作
from collections import namedtuple
# 创建命名元祖Good类,包括2个属性'price'和'weight'
Good = namedtuple('Good', ['price', 'weight'])
# 创建对象
good1 = Good(1, 1)
# 使用_fields查看字段名
print(Good._fields) # ('price', 'weight')
# 使用 _replace() 修改对象属性值
good2 = good1._replace(price=22)
print(good1) # Good(price=1, weight=1)
print(good2) # Good(price=22, weight=1)
# 使用 _asdict()函数把 命名元祖->字典
print(good1._asdict()) # OrderedDict([('price', 1), ('weight', 1)])
# 字典->命名元祖
d = {'price': 33, 'weight': 44}
print(Good(**d)) # Good(price=33, weight=44)
# 列表->命名元祖
goods_iterator = map(Good._make, [(23, 1001), (21, 1002), (25, 1003), ]) # 返回的是迭代器
# 命名元祖->列表
print(list(goods_iterator)) # [Good(price=23, weight=1001), Good(price=21, weight=1002), Good(price=25, weight=1003)]
二、命名元祖用途:命名元组在存储csv
或者sqlite3
返回数据的时候特别有用