Любое точное решение, вероятно, будет включать Exec() или что-то чужак и большинство программистов Python, вероятно, рекомендуем вам вместо изменить список словарей в словарь списков:
from collections import defaultdict
list_of_dictionaries = [
{'abc':10,'efg':20,'def':30},
{'abc':40,'xya':20,'def':50},
]
dictionary_of_lists = defaultdict(list)
# there's probably some clever one liner to do this but let's keep
# it simple and clear what's going when we make the transfer:
for dictionary in list_of_dictionaries:
for key, value in dictionary.items():
dictionary_of_lists[key].append(value)
# We've achieved the goal, now just dump dictionary_of_lists to prove it:
for key, value in dictionary_of_lists.items():
print(key, value)
который выводит:
xya [20]
def [30, 50]
abc [10, 40]
efg [20]
Не совсем то, что вы просили, но должно быть для большинства целей, что вам нужно.
Итак, вы хотите, чтобы имя результирующих массивов было ключом dict. Верный? – zaxliu
Что вы пробовали до сих пор и в какой проблеме вы столкнулись при попытке реализовать свое решение? –
Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не опубликуете свой код и не сможете точно описать проблему. StackOverflow не является кодовым или учебным сервисом. – Prune