Перебор значений словаря не работает (ошибка: объект 'int' не является итерируемым )[дубликат]

Possible Duplicate:
Getting 'int' object is not iterable

Итак, я пытаюсь добавить значение в словарь на основе другого кода:

if not cat_sums.has_key(k):
        cat_sums[k] = 0
cat_sums[k] += value

Словарь выглядит так:

cat_sums =     defaultdict(, {'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 _sum[k] = [0] для первой итерации, а [0] не целое число, это список. Тогда я попробовал это:

print cat_sums[k[0]]

Чтобы увидеть, что он выведет, то есть посмотреть, должен ли я заменить cat_sums[k]на cat_sums[k[0]], однако это дало мне это:

[]

Пустой список.

Итак, как мне добавить значение внутри словарной суммы cat _, перебирая каждый ключ? Что я здесь делаю неправильно?

Обратите внимание, просто чтобы уточнить, значение будет равно некоторому целому значению, которое больше или равно 0 (, хотя это может измениться, и отрицательные целые числа могут быть разрешены позже, но пока не)

0
задан Community 23 May 2017 в 11:56
поделиться