在以下代码中,我想使用整数作为字典中的键:
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
我得到一个KeyError: 0
at N[s] += 1
。为什么会这样?文件说_
字符串和数字总是可以作为键
wiki给出了解释:KeyError
每当请求 dict() 对象(使用 format
a = adict[key]
)并且键不在字典中时,Python 都会引发 KeyError。
我想做的是用未知的键构建一个字典(它们是动态计算的)并为它们保留一个计数器。我过去做过(用字符串作为键)所以这次我做错了什么?(我知道 - 这一定非常明显,但是在盯着这个复杂的代码一段时间后,我需要帮助 :))