我为什么得到错误的值?

时间:2017-11-03 09:34:34

标签: python-3.x

player_list= {'peter':0, 'karel':0}

naam = input("Welke speler moet een score + 1 krijgen?")
for key, value in player_list.items():
    player_list[naam] = value + 1

print(player_list)

有人可以解释我,为什么每当我进入" peter"但是当我进入" karel"?

1 个答案:

答案 0 :(得分:1)

我认为,您希望增加密钥的dict值,该值与用户通过input提供的字符串相同。问问自己,你真的需要迭代dict项来做这样的事吗? Dict是键值结构,只要您直接提供此键,就可以访问键的值。

>>> player_list = {'peter':0, 'karel':0}
>>> player_list['peter']
0

将值设置为现有的dict键很容易。您所需要做的就是:

>>> player_list['peter'] = 3
>>> player_list['peter']
3

如果您想增加“彼得”的价值。你需要把任何存储在' peter'并添加一个,但没有必要迭代dict项目来做到这一点。与任何其他变量一样,dict元素是一种占位符,可以通过该占位符访问某些内存空间。因此,如果有任何变量,您可以执行以下操作:

>>> x = 1
>>> x = x + 1 # or x += 1 for short

...如果是dict元素,你也可以这样做:

>>> player_list['peter'] = player_list['peter'] + 1 # or:
>>> player_list['peter'] += 1

如果您很好奇为什么您当前的代码没有按预期工作,请使用调试器运行代码或只添加打印功能:

for key, value in player_list.items():
    print("Current key: {}, current value: {}".format(key, value))
    player_list[naam] = value + 1

事实上,每当您不知道为什么代码执行与预期结果不同时,使用一些调试工具总是好的。

相关问题