如何在Python中将字典项在添加到购物车时减去一个
我想做的是在Python中创建一个函数,用来计算购物车中商品的总价格。这个函数需要检查商品是否在库存字典里。如果商品在库存中并且被加入到总价格里,我还想把库存字典中该商品的数量减去购物车中添加的数量。
我现在完全卡住了,不知道该怎么继续,请看下面的代码:
stock = {
"item1": 6,
"item2": 0,
"item3": 32,
"item4": 15
}
prices = {
"item1": 4,
"item2": 2,
"item3": 1.5,
"item4": 3
}
def compute_bill(cart):
total = 0
for key in cart:
if stock[key] > 0:
total += prices[key]
return total
2 个回答
0
你可以简单地减少那个商品的库存数量:
def compute_bill(cart):
total = 0
for key in cart:
if stock[key] > 0:
total += prices[key]
stock[key] -= 1
return total
0
假设题目中没有明确说明,但我们认为购物车(cart)里的每个商品的值是想要的数量,我会这样写代码:
def compute_bill(cart):
total = 0
for key, value in cart.items():
if 0 < value <= stock[key]:
total += prices[key] * value
stock[key] -= value
return total
如果你的 stock
(库存)、price
(价格)和 cart
(购物车)有这些值:
stock = {
"item1": 6,
"item2": 0,
"item3": 32,
"item4": 15
}
prices = {
"item1": 4,
"item2": 2,
"item3": 1.5,
"item4": 3
}
cart = {
"item1": 8,
"item2": 3,
"item3": 10,
"item4": 10
}
那么购物车的总价就是:
>>> print compute_bill(cart)
45.0
>>> from pprint import pprint
>>> pprint(stock)
{'item1': 6, 'item2': 0, 'item3': 22, 'item4': 5}
注意,item1的数量没有减少,因为订单没有完全满足。同样,item2缺货,所以也没有减少。而买家有10个item3和item4。这两个商品的库存各减少了10个。
此外,这样做还避免了亚马逊曾经出现的负购物车数量问题。