Вывод ключей и их значений
pizza = {'мука, кг': 1,
'помидоры, кг': 1.5,
'шампиньоны, кг': 1.5,
'сыр, кг': 0.8,
'оливковое масло, л': 0.1,
'дрожжи, г': 50}
salad = {'огурцы, кг': 1,
'перцы, кг': 1,
'помидоры, кг': 1.5,
'оливковое масло, л': 0.1,
'листья салата, кг': 0.4}
print_shopping_list(pizza, salad)
мой код, возможно, не правильный:
def print_shopping_list(list1, list2):
print(', '.join(set(list1).union(set(list2))))
Ответы (2 шт):
Автор решения: dIm0n
→ Ссылка
Вот так вот:
pizza = {'мука, кг': 1,
'помидоры, кг': 1.5,
'шампиньоны, кг': 1.5,
'сыр, кг': 0.8,
'оливковое масло, л': 0.1,
'дрожжи, г': 50}
salad = {'огурцы, кг': 1,
'перцы, кг': 1,
'помидоры, кг': 1.5,
'оливковое масло, л': 0.1,
'листья салата, кг': 0.4}
print(dict(pizza, **salad))
В питоне 3.9 добавят объединение словарей явно и можно будет писать pizza | salad
Автор решения: Хачатур Саркисян
→ Ссылка
Способов решений данной проблемы много. Ниже представлен метод с использованием chain.from_iterable модуля itertools. Данный метод учитывает, что словари не будут объединены в случае одинаковых ключей в переменных pizza и salad
from itertools import chain
izza = {'мука, кг': 1,
'помидоры, кг': 1.5,
'шампиньоны, кг': 1.5,
'сыр, кг': 0.8,
'оливковое масло, л': 0.1,
'дрожжи, г': 50}
salad = {'огурцы, кг': 1,
'перцы, кг': 1,
'помидоры, кг': 1.5,
'оливковое масло, л': 0.1,
'листья салата, кг': 0.4}
foods = chain.from_iterable([pizza.items(), salad.items()])
for food, measure in foods:
print(food, measure)