Подтвердить что ты не робот

TypeError: объект 'dict' не может быть вызван

Я пытаюсь перебрать элементы входной строки и получить их из словаря. Что я делаю неправильно?

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
4b9b3361

Ответ 1

Синтаксис доступа к ключу, заданному ключом, равен number_map[int(x)]. number_map(int(x)) будет фактически вызовом функции, но поскольку number_map не является вызываемым, возникает исключение.

Ответ 2

Доступ к словарю с квадратными скобками.

strikes = [number_map[int(x)] for x in input_str.split()]

Ответ 3

strikes  = [number_map[int(x)] for x in input_str.split()]

Используйте квадратные скобки для изучения словарей.

Ответ 4

strikes  = [number_map[int(x)] for x in input_str.split()]

Вы получаете элемент из dict, используя эти скобки [], а не эти ().

Ответ 5

Вам нужно использовать:

number_map[int(x)]

Обратите внимание на квадратные скобки!

Ответ 6

Вы должны использовать [] для доступа к элементам словаря. Не ()

  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 ]

Ответ 7

it number_map[int(x)], вы попытались на самом деле вызвать карту с одним аргументом