Отличный вопрос!Я сталкивался с этим много раз, поэтому могу сделать несколько полезных выводов.Всякий раз, когда вашей ошибкой является «Список индексов вне диапазона», 95% времени это список, содержащий не столько значений, сколько вы думаете.Я вижу, что вы новый участник StackOverflow.Добро пожаловать в сообщество!Если вы не знакомы с немного более продвинутыми концепциями списка Python, позвольте мне объяснить.
Все в списке имеет индексное значение.Он начинается с нуля и увеличивается на единицу для каждого элемента списка, независимо от типа данных в списке.
Пример:
lista= ['This', 'Is', 'A', 'List!']
Показатель выше имеет низкий индекс 0 ипоследний индекс равен 3. Разбивка:
lista= ['This', 'Is', 'A', 'List!']
index 0 1 2 index 3
Скорее всего, у вас есть список с меньшим индексом, который будет указан в вашем коде позже.Так что, возможно, вы звоните index [4]
в приведенном выше списке.Это вернет ошибку, потому что нет четвертого индекса.Это .... вне диапазона!Вот что означает ваш код ошибки!
Вы можете легко проверить, насколько длинен ваш список с помощью метода приведения len ().Это скажет вам, сколько индексов в вашем списке.Если бы я запустил следующий фрагмент:
len(lista)
Я бы получил:
4
Это показывает четыре индекса.Если вы хотите узнать самый большой индекс или его верхний, минус результат приведенного выше фрагмента на 1:
print(len(lista)-1)
, который возвращает:
3
Какой ваш главный индекс.Поэтому проверьте размер своих списков, и я уверен, что ваши проблемы будут решены, если вы укажете правильные индексы.Также убедитесь, что данные добавляются в список правильно, иначе их там точно не будет!Удачи во всех ваших кодировках в будущем и добро пожаловать в сообщество Stack Exchange!
Ethan J.