我试图简化这段代码:
final_data_row = dict()
final_data_row['param1'] = []
final_data_row['param2'] = []
final_data_row['param3'] = []
final_data_row['param4'] = []
变成这样:
from collections import defaultdict
final_data_row = dict()
for param in ['param1', 'param2', 'param3', 'param4']:
final_data_row[param] = defaultdict(list)
但是当我想给字典里的一个条目添加一些东西时,比如:
final_data_row['param1'].append('test value')
它给了我一个错误:
AttributeError: 'collections.defaultdict' object has no attribute 'append'
这两个代码段是不等价的:第一个代码段创建4个条目作为列表,第二个代码段创建4个条目作为
defaultdict
s。所以现在键的每个值都是defaultdict
,不能在上面使用append
。你知道吗取决于你想做什么:
只定义这4个键:不需要
defaultdict
或听写理解:
如果需要完整的
defaultdict
:一行:(您可以添加任意数量的键,而不是固定到
param[1234]
键相关问题 更多 >
编程相关推荐