← Все вопросы
TypeError: 'int' object is not subscriptable — что значит и почему?
8
Пытаюсь взять элемент по индексу, пишу x[0], а Python отвечает TypeError: 'int' object is not subscriptable. Что вообще такое «not subscriptable» и почему он считает мою переменную числом?
1 ответ
11
✓ Принятый ответ — помог автору
«Subscriptable» — это «к нему можно применить квадратные скобки [...]». Ошибка 'int' object is not subscriptable значит: вы пишете x[i], но x — это число, а у числа нет элементов по индексу.
Пример:
x = 100
print(x[0]) # TypeError: 'int' object is not subscriptable
Частые причины:
- Перепутали переменную: думали, что там список, а там число.
- Случайно переназначили имя. Например, был список
nums, а потом написалиnums = len(nums)— теперьnumsэто число, иnums[0]падает. - Хотели обратиться к элементу, а на самом деле там результат вычисления.
Исправление зависит от намерения. Если нужен элемент списка — убедитесь, что переменная действительно список:
x = [10, 20, 30]
print(x[0]) # 10
То же сообщение бывает с 'float', 'bool', 'NoneType' — смысл одинаковый: к скобкам [] применили объект, который их не поддерживает. Проверьте через print(type(x)), что лежит в переменной.
Ваш ответ
, чтобы ответить на вопрос.