在Python字典中修改值

在Python字典中修改值,python,dictionary,Python,Dictionary,我有一本字典叫《水果篮子》。出于某些原因,篮子看起来像这样 Basket = { Fruit1 : "none" Fruit2 : "none" Fruit3 : "none" Fruit4 : "none" Fruit5 : "none" } 我想检查一下这本词典中是否有苹果,如果没有,请将其作为水果输入。但假设篮子已经被打开了,香蕉已经被设置为水果1,那么我希望苹果被设置为

我有一本字典叫《水果篮子》。出于某些原因,篮子看起来像这样

Basket = {
          Fruit1 : "none"
          Fruit2 : "none"
          Fruit3 : "none"
          Fruit4 : "none"
          Fruit5 : "none"
         }
我想检查一下这本词典中是否有苹果,如果没有,请将其作为水果输入。但假设篮子已经被打开了,香蕉已经被设置为水果1,那么我希望苹果被设置为水果2,但是如果梨已经在里面,那么它应该是水果3,依此类推。我的总体代码是。。。不是最好的,但在这一点上,这是它必须工作的方式,如果它要工作的话,那么除了放弃已经存在的东西(我希望稍后全部修改)之外,我如何才能使它工作


目前,代码的其余部分只是检查水果1==Apple,如果没有,则继续比较水果2等,如果找到匹配项,则会执行填充操作,但如果篮子中没有苹果,则永远不会添加苹果,篮子中的所有键最初都设置为“无”。我把自己弄糊涂了。任何建议,谢谢

以下声明:

'apple' in Basket.values()
如果“apple”是字典中的值之一,则返回True

Basket.values().index('apple')
返回“apple”的索引。如果字典中没有“apple”,则会出现
ValueError
异常

如果出现
ValueError
异常,请将'apple'添加为'Fruit1'值;否则,请使用索引设置正确的FROUTN值:

index = Basket.values().index('apple')
key, value = Basket.items()[index]
value = 'banana'
Basket[key] = value

注意,上面的代码片段显示了如何用“banana”替换现有的“apple”值;如果字典中没有“apple”,则不会显示异常处理。不过,这应该足以让你行动起来。

我相信这样的方法会奏效。不过,可能有更有效的方法:

Basket = {
          'Fruit1' : "none",
          'Fruit2' : "none",
          'Fruit3' : "none",
          'Fruit4' : "none",
          'Fruit5' : "none"
         }

basketSize = len(Basket)

if 'apple' not in Basket.values():
    print "Couldn't find the apple"

    for i in range(basketSize):
        curItem = "Fruit"+str(i+1)
        if Basket[curItem] == "none":
            Basket[curItem] = "apple"
            break

print Basket

您可能希望使用
列表
而不是
dict
,如果列表中缺少项目,只需添加项目。您可以查看和。键应该是字符串
'Fruit1'
'Fruit2'
等等,还是一些具有特定值的变量?因此,如果我尝试使用Fruit=Apple,如果Fruit不在Basket.items中():Basket[“none”]=水果中断?这会将第一个值为“none”的水果设置为Apple,然后中断吗?Donald V,键确实是字符串。:(谢谢,这个答案最适合我通常的“可能更有效的方式”代码,还告诉我如何将带有字符串的变量作为名称,并更智能地使用它们。