У меня есть список L
словарей, в которых словари имеют одинаковый набор ключей.Применить функции к значениям словарей
У меня есть другой словарь d
, который также имеет тот же набор ключей, что и предыдущие словари.
Для каждого key
в наборе ключей, d[key]
является функцией, которая может применяться к L[i][key]
, т.е. d[key](L[i][key])
.
Я хочу, чтобы сбросить значения словарей в L
, используя функции в значениях d
, т.е.
L[i][key] = d[key](L[i][key])
для всех key
и всех i
.
Как я могу сделать это более питоническим способом? Благодарю.
E.g.
d = {'a':int, 'b':myfun, 'c':yourfun}
L[1] = {'a':`10`, 'b':5, 'c':1.4}
, где int
является функцией преобразования типа int()
, myfun
это функция, которая может принимать целое число в качестве аргумента, а yourfun
другой функции, которая может принимать плавающее число в качестве аргумента.
примером может быть лучше. –
О, человек. Я бы сказал, что нет никакого питонического способа сделать неряшливую вещь. Можете ли вы достичь своей цели таким образом, чтобы не включать такой подход? – humanoid
В идеале, я думаю, у вас должен быть такой большой словарь, как: '{'key1': {'fn': func, 'L': [L [0] ['key1'], L [1] ['key1' ] и т. д.}}, 'key2': ... и т. д. '' Если все данные связаны с ключом, его следует сгруппировать по ключу, нет? Зачем использовать отдельные словари с одинаковыми наборами ключей? – Shashank