Python TypeError list indices must be integers or slices, not list

Иногда при написании программ (скриптов) на языке Питон (Python) может возникнуть ошибка: Python TypeError list indices must be integers or slices, not list. Что делать и как быть? Как исправить (пофиксить) эту ошибку быстро и просто?

Давайте разбираться. Представим ситуацию, что написали программу на языке python, запускаем её, а компилятор ругается на ошибку TypeError list indices must be integers or slices, not list. В самом сообщении содержится подсказка, попробуем понять, в чем проблема, и как её можно исправить.

Если перевести дословно, то получим «Индексы списка должны быть целыми числами или срезами, а не списком».

Рассмотрим такой пример, вот мы написали простенькую программу на python'e:

a = ['1']

b = []

print(a[b])

При попытке запустить программу валится эта самая ошибка  TypeError list indices must be integers or slices, not list.

В данном случае мы попытались обратиться по индексу, но индекс у нас является списком. Т.е. нам компилятор и подсказывает, что индекс списка должен быть целым числом или срезом. Скорее всего, если бы мы писали более сложный код, мы бы где-то присвоили значение переменной b таким образом, что b стал бы списком, а потом попытались обратиться по индексу b (а он уже список), отсюда бы и возникла наша ошибка TypeError list indices must be integers or slices, not list.

Давайте исправим ситуацию:

a = ['1']

b = 0

print(a[b])

Теперь индекс у нас типа integer, поэтому ошибки не возникнет.

Надеемся, теперь у вас тоже не возникнет ошибки TypeError list indices must be integers or slices, not list, а если и возникнет, мы теперь знаем, что делать.

0
Нет комментариев. Ваш будет первым!