Ismycode |.
IndexError: Индекс списка вне диапазона Происходит, если вы получаете доступ к неверному индексу в своем списке Python, вообще его поднят при попытке получить индекс из последовательности (например, списка, кортеж и т. Д.), и индекс не найден в данной последовательности.
Ниже приведен классический пример, который поднимает IndexError: Индекс списка вне диапазона
test = list(range(53)) test[53] IndexError: list index out of range -------------------------------------------------------------------------------- IndexError Traceback (most recent call last) c:\Projects\Tryouts\listindexerror.py in 1 test = list(range(53)) ---------> 2 test[53] IndexError: list index out of range
Сообщение об ошибке указывает, что мы пытаемся получить доступ к индексу, который отсутствует в списке. В этом случае мы пытаемся распечатать индекс 53, который нет и в Python номер индекса начинается с 0, поэтому первый элемент списка будет 0, а последний элемент будет длиной 1.
Проблема: indexError: Индекс списка вне диапазона
Общая причина, которая приводит к этому исключительству IndexError: Индекс списка вне диапазона в том, что
- Список итерация с индексом, начиная от 1 вместо 0.
- Последний элемент доступа к длине списка. Доступ к тому, что он должен быть доступен как Лен (список) -1.
- Когда вы забываете использовать *
Диапазон ()
* Итерации по списку.
Решение indexError: Индекс списка вне диапазона
Есть несколько способов разрешить indexError в Python. Не рекомендуется получить доступ к списку или массиву в любом программировании с использованием жесткодируемого значения индекса. Это часто приводит к исключению, вместо этого используют одну из лучших практик ниже.
- Использование функции Len ()
- Используя для петли с ‘в’
- Использование для цикла с диапазоном ()
Решение 1 – Использование Len () функция
Если список создан динамически, трудно предсказать индекс и получить доступ к элементу. В таком случае всегда проверяйте длину списка перед доступом к элементу списка.
numbers = [1, 2, 3, 4, 6, 8, 10] index = 3 if index < len(numbers): print(numbers[index]) #Output 4
Решение 2 – Использование для цикла с «в»
Используйте операторы членства, чтобы подтвердить членство в ценности. Операторы членства используются для передачи всех элементов в последовательности, таких как строки, списки или кортежи. Ошибка . IndexError: Индекс списка вне диапазона будет решен операторами членства.
numbers = [1, 2, 3, 4, 6, 8, 10] for i in numbers: print(i)
Решение 3 – Использование для петли с диапазоном ()
Диапазон ()
Функция Возвращает последовательность чисел, начиная с 0 по умолчанию, приращения к 1 (по умолчанию) и останавливается до указанного номера. Функция диапазона поможет в итерации элементов в цикле.
Синтаксис: диапазон (пункт, остановка, шаг)
Старт (необязательно): Целое число, которое указывает на начало последовательности. Значение по умолчанию равно 0, если оставить пустой.
- Стоп: Целое число, которое указывает, где последовательность должна остановиться.
- Шаг (необязательно): Используется, если вы хотите увеличить на номер более 1. Значение по умолчанию составляет 1
numbers = [1, 2, 3, 4, 6, 8, 10] for i in range(len(numbers)): print(i)
Пост Python IndexError: Индекс списка вне диапазона появился первым на INSMYCODE Отказ
Оригинал: “https://dev.to/itsmycode/python-indexerror-list-index-out-of-range-hdo”