python中的_和__
https://blog.csdn.net/m0_38063172/article/details/82179591
Python-命名元祖 :
https://www.cnblogs.com/staff/p/11474162.html
二叉树(二叉搜索树-AVL树-B树)
https://www.cnblogs.com/staff/p/11454395.html
列表、栈、队列、链表、哈希表
https://www.cnblogs.com/staff/p/11447791.html
算法进阶(贪心算法,动态规划)
https://www.cnblogs.com/staff/p/11474767.html
一、命名元祖基本操作
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
返回数据的时候特别有用