у меня есть список словарей, которые имеют в качестве своих значений некоторых кортежей:Преобразование вложенных кортежей в вложенные словари
dic1 = {
'persuaded ': [[('teacher', '6'), ('group', '5'), ('man', '5'), ('girl', '5')]],
'removed ': [[('apple', '5'), ('makeup', '4'), ('trash', '4'), ('stain', '4')]]
}
Что мне нужно сделать, чтобы преобразовать вложенные кортежи в словари, так что я могу сравнить он с другими подобными списками впоследствии использует ключи. Идеальный результат будет что-то вроде:
dic2 = {
'persuaded ': [{'teacher': '6'}, {'group': '5'}, {'man': '5'}, {'girl': '5'}],
'removed ': [{'apple': '5'}, {'makeup': '4'}, {'trash': '4'}, {'stain': '4'}]
}
Я пробовал:
dic2 = {}
for x, y in dic1_zipped:
d.setdefault(x, []).append(y)
И:
from collections import defaultdict
dic2= defaultdict(list)
for n,v in dic1_zipped:
fq[n].append(v)
Но ни идет достаточно глубоко в словаре. Я был бы очень признателен за любые предложения о том, как это решить! Благодаря!
Почему у вас есть лишние квадратные скобки - в dic1 ваше значение представляет собой список из списка кортежей, а в dic2 ваша ценность - это список отдельных словарей. Будет ли лучший результат не быть '{'убежден': {'teacher': 6, 'group': 5, ...}}'? – jonrsharpe
У вас есть список списков кортежей? – rdodev
@rdodev Да, это то, что у меня есть. Как вы думаете, было бы проще, если бы я сгладил его, прежде чем переходить на словарь? – user3008918