如何在python字典中减去键的值

时间:2017-04-09 13:03:33

标签: python dictionary

我正在学习python而我正在尝试使用我构建的这个功能而不能正常工作。该函数不会更改字典中的单个值,因为它现在正在工作,尽管它应该。我想得到一些帮助

def delete_product(diction):
    product_to_delete = raw_input()
    for key,value in diction.items():
        if key == product_to_delete:
            value = value - 1
            if (value == 0):
                del diction[key]
            print "removed"
            raw_input()
    print "we couldnt remove the product because it does not exist"
    raw_input()

1 个答案:

答案 0 :(得分:0)

此代码段中的错误:

value = value - 1
if (value == 0):
    del diction[key]

您只需修改本地值,而不是修改字典中的值。因此,仅当值恰好为1时,此函数才会删除所需的条目。

您可以按照以下方式或其任何变体进行修改:

    if value == 1:
        del diction[key]
        break
    else:
        diction[key] = value - 1

此外,请注意,一旦从词典中删除条目,您必须跳出for循环。如果在迭代时修改字典,那么迭代器将无法工作。如果要在一次迭代中删除多个键,首先获取循环中要删除的所有键的列表,然后在循环后删除。