Я пытаюсь создать функцию, которая присваивает ключи и значения defaultdict в python3, но при выполнении exec происходит сбой.Допустим, мне нужно передать несколько переменных str в качестве ключей и другие значения в defaultdict внутри:
Определить dd:
dict=dd(lambda: dd(lambda: dd(lambda: dd(list))))
Определить переменные в качестве ключей:
keys_var = ['a', 'b', 'c', 'd']
Определить переменные как значения:
values_var = ['d', 'e', 'f', 'g' ]
Упорядочить значения для ключей:
key_for_dict = []
for value in keys_var :
value_for_keys.append( '[' + str(value) + ']' )
string_insert_keys = ''.join(key_for_dict)
это будет выглядеть так:
[a][b][c][d]
Упорядочить значения для значенийinsert:
values_for_dict = []
for value in values_var:
values_for_dict.append(value)
string_for_values = ', '.join(values_for_dict)
string_insert_values = "[ " + string_for_values + " ]"
это будет выглядеть так:
[ d, e, f, g ]
А теперь определите функцию для вставки этих ключей и значений в цикл (где a, b, c, d и т. д. принимаютразличные значения и последний аргумент - это объединение всех этих d, e, f, g)
Я пытался:
def riempie_dict_var( dizionario ) :
exec( dizionario + string_insert_keys + ".append('___'.join( " + string_insert_columns + "))" )
, но это не удается с:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'collections.defaultdict' and 'str'