2016-07-15 2 views
-1

Я видел другие способы добавления 1 к значению в словаре. Я просто получаю сообщение об ошибке, когда пытаюсь добавить значение 1 в значение словаря в python.Добавление 1 к значению в словаре

Вот мой код:

arr = {('1', '20'): [0], ('15', '14'): [0]} 

Я хочу добавить 1 к ключу ('1', '20').

Вот мой код:

w = 1 
x = 20 
arr[(w, x)] += 1 

Я получаю код ошибки:

TypeError: 'int' object is not iterable 

Я просто не знаю, что я делаю неправильно. Любые предложения приветствуются.

ответ

3

два вопроса:

  1. ключи словаря являются кортежи строк, но вы пытаетесь индексировать в словарь, используя кортеж Интс.
  2. Значения в вашем словаре - это (1 длина) списки int, но вы пытаетесь добавить число в один из этих списков.

Вы могли бы хотеть что-то вроде этого:

w = '1' 
x = '20' 
arr[(w, x)][0] += 1 

Не видя больше кода, то это может быть, что вы хотите что-то больше, как это:

# dictionary mapping tuples of ints to ints 
arr = { (1, 20): 0, (15, 14): 0 } 

# now we can just use ints  
w = 1 
x = 20 
# and no need to use [0] to get the first element of the list 
# (because it's no longer a list) 
arr[(w, x)] += 1