#python #python-3.x
Вопрос:
ingredient=[{'product_id': 234, 'product_name':'meat', 'price':3.5}, {'product_id':324, 'product_name':'pickles', 'price':1.0}, {'product_id':146, 'product_name':'roll', 'price':3.0}, {'product_id':289, 'product_name':'chees', 'price':2.5}]
products=[{'product_id':634, 'product_name':'hamburger', 'price':3.5, 'ingredients':[{'product_id':234, 'quantity':1}, {'product_id':324, 'quantity':1}, {'product_id':146, 'quantity':1}]}, {'product_id':777,'product_name':'cheesburger','ingredients':[{'product_id':234, 'quantity':1}, {'product_id':324, 'quantity':1}, {'product_id':146, 'quantity':1}, {'product_id':289, 'quantity':1}]}]
cart=[{'product_id':634, 'quantity':2}, {'product_id':777, 'quantity':4}]
summary_price=0
for item in cart:
summary_price = item['price'] * item['quantity']
print('Summary price is:', summary_price)
У меня есть новый словарь, который будет моей корзиной, и я хотел бы, не указывая цену, сколько стоит бургер, например, я хочу импортировать цену из продуктов, и я хотел бы подвести итоги этой корзины, возможно ли это?
Комментарии:
1. Вы могли
filter
products
бы составить список так, чтобыproduct["product_id] == item["product_id"]
оставались только товары, а затем получить их цены, чтобы затем суммировать. Это кажется ненужным, вы могли бы преобразовать свойproducts
список в диктант:{product_id: {name: "hamburger", price: 4.5}}
Ответ №1:
Создание словаря продуктов (или их цен) по идентификатору облегчит это:
prices = {product["product_id"]: product["price"] for product in products}
summary_price = sum(prices[item["product_id"]] * item["quantity"] for item in cart)