Python 添加现有值而不是替换现有值

Python 添加现有值而不是替换现有值,python,python-3.x,Python,Python 3.x,我想创建一个程序,它采用一个颜色名称,有多少孩子喜欢它,然后将它附加到一个字典中,但是我想这样做,如果输入一个重复的键,它的值将被添加到现有的一个。例如红色4红色3会打印红色7。谢谢 colourPick = True while colourPick: colour = input() numPicked = input() my_dict[colour] = numPicked 为了解决这个问题,我只添加了一个if-else语句来检查dict中是否已经存在颜色,以便

我想创建一个程序,它采用一个颜色名称,有多少孩子喜欢它,然后将它附加到一个字典中,但是我想这样做,如果输入一个重复的键,它的值将被添加到现有的一个。例如红色4红色3会打印红色7。谢谢

colourPick = True
while colourPick:
    colour = input()
    numPicked = input()
    my_dict[colour] = numPicked

为了解决这个问题,我只添加了一个if-else语句来检查dict中是否已经存在颜色,以便决定如何处理numPicked变量

colourPick = True
while colourPick:
    colour = input()
    numPicked = input()
    if colour in my_dict:  # This checks if there is already that *colour* in the dict
        my_dict[colour] += numPicked
    else:
        my_dict[colour] = numPicked

我认为,最简单的方法是通过在我的字典中使用
if color:
,检查键是否存在,但您也可以使用
get(key,default\u value)
方法来简化这一点:

colourPick = True
while colourPick:
    colour = input()
    numPicked = input()
    previous = my_dict.get(colour, 0)
    my_dict[colour] = previous + numPicked
因此,当颜色还没有出现在我的字典中时,前面的颜色将是
0

另请参见

我这样重新解决了它。我添加了一个临时方法来摆脱循环,但您可以修改它。这个代码应该可以工作。显然,对输入ar的检查缺失。颜色与字符串一起使用,与整数值一起拾取

colourpick=True
dict={}
while colourpick:

 colour=input('colour ')
 pick=int(input('number '))
 if colour in dict:
     dict[colour]+=pick
 else:
     dict[colour]=pick
 inp=input('continue ')
 if inp=='.':
     break
print(dict)

对于堆栈溢出,不鼓励使用仅代码的答案,因为它们没有解释堆栈溢出是如何解决问题的。请编辑您的答案,以解释此代码的作用以及它如何回答问题,以便对OP以及具有类似问题的其他用户有用。