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"?
时答案 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
事实上,每当您不知道为什么代码执行与预期结果不同时,使用一些调试工具总是好的。