在以下代码中,我想使用整数作为字典的键:
我在
import itertools
N = {}
for a,b,c,d in itertools.product(range(100), repeat=4):
x = a*a + c*c
y = a*b + c*d
z = b*b + d*d
s = x + y + y + z
N[s] += 1
print N
我在
N[s] += 1
时得到了一个KeyError: 0
错误,为什么会这样呢?文档说:
字符串和数字总是可以作为键。
维基百科对KeyError
进行了解释:
当请求一个dict()对象(使用格式
a = adict[key]
)中不存在的键时,Python会引发KeyError异常。
我的目标是构建一个带有未知键的字典(它们是即时计算出来的),并保持其计数器。我以前做过类似的事情(使用字符串作为键),所以这一次我做错了什么?(我知道 - 这一定是非常明显的,但在盯着这个复杂的代码一段时间后,我需要帮助 :))