Автор оригинала: Team Python Pool.
Привет, кодеры! В этой статье мы узнаем об ошибке python list index out of range, а также о том, как её устранить. Сначала мы должны понять, что это значит? Ошибка Индекс списка вне диапазона возникает, когда мы пытаемся получить доступ к недопустимому индексу в нашем списке Python.
Иллюстрация list index out of range с примерами:
Пример 1: с функцией len()
color = ['red', 'blue', 'green', 'pink'] print(color[len(color)])
выход:
Объяснение:
В этом фрагменте кода мы создали список под названием color, содержащий четыре элемента – красный, синий, зеленый, розовый.
В python индексация элементов списка начинается с 0. Таким образом, соответствующие индексы элементов следующие:
- красный – 0
- синий – 1
- зеленый – 2
- розовый – 3
Длина списка равна 4. Таким образом, когда мы пытаемся получить доступ к color[len(color)]
, мы получаем доступ к элементу color[4]
, который не существует и выходит за пределы диапазона списка. В результате отображается ошибка list index out of range.
пример 2: с использованием цикла
def check(x): for i in x: print (x[i]) lst = [1,2,3,4] check(lst)
выход:
Объяснение:
Здесь список lst
содержит значение 1,2,3,4
, имеющее индекс 0,1,2,3
соответственно.
Когда цикл повторяется, значение i
равно элементу, а не его индексу.
Таким образом, когда значение i равно 1 (то есть первый элемент), он отображает значение x[1], которое равно 2, и так далее.
Но когда значение i становится 4, он пытается получить доступ к индексу 4, то есть x[4], который становится вне границы, таким образом отображая сообщение об ошибке.
Как избежать ошибки выхода индекса списка python из диапазона?
1)Списки индексируются с нуля:
Мы должны помнить, что индексация в списке python начинается с 0, а не с 1. Итак, если мы хотим получить доступ к последнему элементу списка, оператор должен быть записан как lst[len-1] , а не last[long], где len – количество элементов, присутствующих в списке.
Итак, первый пример можно исправить следующим образом:
color = ['red', 'blue', 'green', 'pink'] print(color[len(color)-1])
выход:
Выход
объяснение:
Теперь, когда мы использовали color[lens(color)-1], он обращается к элементу color[3], который является последним элементом списка. Таким образом, вывод отображается без каких-либо href=”https://en.m.wikipedia.org/wiki/Error”>ошибка. href=”https://en.m.wikipedia.org/wiki/Error”>ошибка.
2)Используйте range() в цикле:
Когда вы перебираете список чисел, то range() должен использоваться для доступа к индексу элементов. Мы забываем использовать его вместо индекса, доступ к самому элементу осуществляется, что может привести к ошибке индекса списка вне диапазона.
Итак, чтобы устранить ошибку второго примера, мы должны выполнить следующий код:
def check(x): for i in range(0, len(x)): print (x[i]) lst = [1,2,3,4] check(lst)
выход:
Выход
Объяснение:
Теперь, когда мы использовали функцию range() от 0 до длины списка, вместо прямого доступа к элементам списка мы получаем доступ к индексу списка, таким образом избегая каких-либо ошибок.
Обязательно Прочтите:
Python List Length | How to Find the Length of List in PythonHow to use Python and() | Python find() String MethodPython next() Function | Iterate Over in Python Using next
Вывод: Индекс списка Python Выходит за пределы диапазона
В повседневном программировании ошибка индекса списка вне диапазона очень распространена. Мы должны убедиться, что мы остаемся в пределах диапазона нашего списка, чтобы избежать этой проблемы. Чтобы избежать этого, мы должны проверить длину списка и код соответственно.
Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.
Счастливого Пифонирования!