Вы можете использовать понимание списка, чтобы получить цены меню пунктов в ordered_items
, обратите внимание, что структура, которую вы создали для ordered_items
, представляет собой set
, а не словарь.
menu_items = {
'nulla aliquam': 15.00,
'malesuada': 14.00,
'feugiat ipsum': 9.00,
'maecenas': 12.00,
'fermentum mass': 23.00
}
ordered_items = {
'maecenas',
'pizza',
'malesuada'
}
totalPrice = sum([v for k,v in menu_items.items() if k in ordered_items])
print(totalPrice)
Вывод:
26.0
Понимание списка - это просто лучший способ выполнить цикл for ниже:
Редактировать Для вашей спецификации печати каждого элемента взаказ.
total_price = 0
for item in ordered_items:
if item in menu_items:
print(f"{item} : ${menu_items[item]} ")
total_price += menu_items[item]
else:
print(f"Sorry, we don't have {item}")
print(f'Total : ${total_price}')
Вывод:
меценаты: 12,0
Извините, у нас нет пиццы
malesuada: 14,0
Итого: $ 26,0
Чтобы напечатать все это в одной строке, добавьте каждый оператор к одной строке в каждом цикле и напечатайте это в конце:
total_price = 0
printString = ''
for item in ordered_items:
if item in menu_items:
printString += f"{item} : ${menu_items[item]} "
# print(f"{item} : ${menu_items[item]} ")
total_price += menu_items[item]
else:
# print(f"Sorry, we don't have {item}")
printString += f"Sorry, we don't have {item} "
#print(f'Total : ${total_price}')
printString += f"Total : ${total_price} "
print(printString)
Вывод:
меценаты: 12,0 $ Извините, у нас нет пиццы malesuada: 14,0 $ Итого: 26,0