聊聊nametuple和default_dict

165 阅读1分钟

nametuple(命令元组)

什么时候需要用到nametuple

第一:其实nametuple是对tuple的进一步封装,同时具备了tuple的功能,nametuple可以给每个值加上字段名,方便代码的维护
第二: nametuple完全是一个简易版的类,如果不使用类方法的时候,完全可以用nametuple进行代替,而且nametuple效率比tuple更高,内部也不需要维护太多东西

使用实例

from collections import namedtuple

fund_flow = namedtuple("fund_flow", ["id", "fund_account_id", "fund_value"])
data = fund_flow(id=1, fund_account_id=2, fund_value=3)
print(data.id)
print(data.fund_account_id)
print(data.fund_value)
print(data)

result:
1
2
3
fund_flow(id=1, fund_account_id=2, fund_value=3)

很明显命名元组同时具备了tuple的功能,同时又类似于一个精简类,方便使用

default_dict(默认字典)

什么时候需要用到default_dict

default_dict 见文生意,就是给dict加了个默认值,当这个key不存在时,能够给这个key设置一个默认值,例如default_dict(list) 会给每个元素默认设置一个空列表(但是dict应该不会)

使用实例

from collections import defaultdict

fund_flow = defaultdict(list)
fund_flow["1"].append(2)
fund_flow["2"].append(3)
print(fund_flow["1"])
print(fund_flow["2"])
print(fund_flow)

result:
[2]
[3]
defaultdict(<class 'list'>, {'1': [2], '2': [3]})