python - Initialize dictionary items as defaultdict(list) -


i'm trying simplify code:

final_data_row = dict() final_data_row['param1'] = [] final_data_row['param2'] = [] final_data_row['param3'] = [] final_data_row['param4'] = [] 

into this:

from collections import defaultdict  final_data_row = dict() param in ['param1', 'param2', 'param3', 'param4']:     final_data_row[param] = defaultdict(list) 

but when wanted add 1 of dictionary items, so:

final_data_row['param1'].append('test value') 

it gives me error:

attributeerror: 'collections.defaultdict' object has no attribute 'append' 

both snippets aren't equivalent: first 1 creates 4 entries lists, second 1 creates 4 entries defaultdicts. each value of key defaultdict, can't use append on that.

depending on want do:

define 4 keys: no need defaultdict

final_data_row = dict() param in ['param1', 'param2', 'param3', 'param4']:     final_data_row[param] = [] 

or dict comprehension:

final_data_row = {k:[] k in ['param1', 'param2', 'param3', 'param4']} 

if want full defaultdict: 1 line:

final_data_row = defaultdict(list) 

(you can add many keys want, not fixed param[1234] keys


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -