可能重复:
获取“int”对象不可迭代
所以我试图根据其他一些代码向字典添加一个值:
if not cat_sums.has_key(k):
cat_sums[k] = 0
cat_sums[k] += value
字典看起来像这样:
cat_sums = defaultdict(<type 'list'>, {'composed': [0], 'elated': [0], 'unsure': [0], 'hostile': [0], 'tired': [0], 'depressed': [0], 'guilty': [0], 'confused': [0], 'clearheaded': [0], 'anxious': [0], 'confident': [0], 'agreeable': [0], 'energetic': [0]})
我得到:
cat_sums[k] += value
TypeError: 'int' object is not iterable
这是有道理的,因为 cat_sums[k] = [0] 对于第一次迭代,而 [0] 不是整数,它是一个列表。所以我尝试了这个:
print cat_sums[k[0]]
看看它会输出什么,也就是说,看看我是否应该用 替换cat_sums[k]
,cat_sums[k[0]]
但是这给了我这个:
[]
一个空列表。
那么如何添加到字典 cat_sums 中的值,遍历每个键呢?我在这里做错了什么?
请注意,为了澄清,值将等于某个大于或等于 0 的整数值(虽然,这可能会改变,并且稍后可能允许使用负整数,但目前还不允许)