获取'int'对象是不可迭代的 [英] Getting 'int' object is not iterable

查看:143
本文介绍了获取'int'对象是不可迭代的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

    cat_sums[cat] += value
TypeError: 'int' object is not iterable

我的输入是:

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]})

这被分配给一个叫做catnums的东西

And this is assigned to something called catnums

accumulate_by_category(worddict, catnums, categories)

        def accumulate_by_category(word_values, cat_sums, cats):
                for word, value in word_values.items():
                        for cat in cats[word]:
                                cat_sums[cat] += value

据我所知,我不是要迭代一个整数。我正在尝试将值添加到catnums中的另一个值。

Now as far as I can tell, I'm not trying to iterate over an integer. I'm trying to add a value to another value inside catnums.

是否可能在accumulate_by_category()函数中遇到cats参数有问题?

Is it possible that it is having trouble with the "cats" argument inside my accumulate_by_category() function?

推荐答案

您的每个值都是一个列表。应用于列表时, + 运算符会将 iterable 添加到列表中。它不附加单个值:

Each of your values is a list. The + operator, when applied to lists adds an iterable to a list. It doesn't append a single value:

>>> [1,2] + [3,4]
[1, 2, 3, 4]
>>> [1,2] + 3
TypeError: can only concatenate list (not "int") to list

看起来你想做 cat_sums [cat] .append(value)

这篇关于获取'int'对象是不可迭代的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆