Ответ 1
Синтаксис доступа к ключу, заданному ключом, равен number_map[int(x)]
. number_map(int(x))
будет фактически вызовом функции, но поскольку number_map
не является вызываемым, возникает исключение.
Я пытаюсь перебрать элементы входной строки и получить их из словаря. Что я делаю неправильно?
number_map = { 1: -3, 2: -2, 3: -1, 4: 1, 5: 2, 6: 3 }
input_str = raw_input("Enter something: ")
strikes = [number_map(int(x)) for x in input_str.split()]
strikes = [number_map(int(x)) for x in input_str.split()]
TypeError: 'dict' object is not callable
Синтаксис доступа к ключу, заданному ключом, равен number_map[int(x)]
. number_map(int(x))
будет фактически вызовом функции, но поскольку number_map
не является вызываемым, возникает исключение.
Доступ к словарю с квадратными скобками.
strikes = [number_map[int(x)] for x in input_str.split()]
strikes = [number_map[int(x)] for x in input_str.split()]
Используйте квадратные скобки для изучения словарей.
strikes = [number_map[int(x)] for x in input_str.split()]
Вы получаете элемент из dict, используя эти скобки []
, а не эти ()
.
Вам нужно использовать:
number_map[int(x)]
Обратите внимание на квадратные скобки!
Вы должны использовать []
для доступа к элементам словаря. Не ()
number_map = { 1: -3, 2: -2, 3: -1, 4: 1, 5: 2, 6: 3 }
input_str = raw_input("Enter something: ")
strikes = [number_map[int(x)] for x in input_str ]
it number_map[int(x)]
, вы попытались на самом деле вызвать карту с одним аргументом