如何在python中将项添加到购物车时将字典项减少一个

时间:2014-06-30 03:06:48

标签: python dictionary

我想要做的是在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 :(得分:0)

您可以简单地减少该项目的库存数量:

def compute_bill(cart):
    total = 0
    for key in cart:
        if stock[key] > 0:
            total += prices[key] 
            stock[key] -= 1
        return total

答案 1 :(得分:0)

假设,没有说明问题的一部分,购物车字典的价值是所需类型的商品的数量,我会写这样的代码:

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

如果您拥有stockpricecart的这些值:

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缺货但没有填写。买方有第3项和第4项各10项。这两件物品的库存减少了10件。

此外,这可以避免negative cart quantity bug that Amazon had