При обращении к словарю по ключу он думает что обращение идет по индексу

VIP_BONUS = {1: (40000, 200),
             2: (30000, 150),
             3: (20000, 100),
             4: (10000, 50),
             5: (4000, 30)},

BONUS_DATA = VIP_BONUS[5]

OUT:

IndexError: tuple index out of range

Вопрос, как обратиться по ключу к указанному словарю?


Ответы (2 шт):

Автор решения: Danis

у вас после } стоит запятая, из-за этого в переменную записывается не словарь, а кортеж с одним элементом

VIP_BONUS = {1: (40000, 200),
             2: (30000, 150),
             3: (20000, 100),
             4: (10000, 50),
             5: (4000, 30)} 
→ Ссылка
Автор решения: MaxU

замените:

VIP_BONUS = {1: (40000, 200),
             2: (30000, 150),
             3: (20000, 100),
             4: (10000, 50),
             5: (4000, 30)},  # <-- запятая после "}" превращает VIP_BONUS в кортеж с единственным элементом - словарем

на:

VIP_BONUS = {1: (40000, 200),
             2: (30000, 150),
             3: (20000, 100),
             4: (10000, 50),
             5: (4000, 30)}

Пояснение: если после переменной поставить запятую, то вместо скалярного значения получится кортеж:

a = 1,
print(type(a))
>>> <class 'tuple'>
→ Ссылка