Выделить словарь из списка
в первой части одной из задач результат вышел такой:
[(1, {'название': 'телевизор', 'цена': 1000, 'количество': 2, 'ед': 'шт'}), (2, {'название': 'магнитофон', 'цена': 3000, 'количество': 2, 'ед': 'шт'})]
То есть это произвольно введенные элементы, где выходит вопрос введите название, цену и тд, а пользователь вводит. Их может быть сколько угодно. Как теперь дальше сделать, чтобы из этих элементов сформировался словарь, а на выходе получилось:
'название': ['телевизор', 'магнитофон'],
'цена': [1000, 3000],
'количество': [2, 2],
'ед': ['шт']
Ответы (1 шт):
Автор решения: Zhihar
→ Ссылка
делайте в лоб:
arr = [(1, {'название': 'телевизор', 'цена': 1000, 'количество': 2, 'ед': 'шт'}), (2, {'название': 'магнитофон', 'цена': 3000, 'количество': 2, 'ед': 'шт'})]
res = dict()
for obj in arr:
for props in obj[1].items():
elem = res.get(props[0], [])
elem.append(props[1])
res[props[0]] = elem
print(res)
внутренняя начинка с get эквивалентна
if props[0] in res:
res[props[0]].append(props[1])
else:
res[props[0]] = [props[1]]