Рубрики
Без рубрики

Индекс списка вне диапазона в Python: Ошибка и решение

Индекс списка Python вне диапазона возникает, когда мы пытаемся получить доступ к недопустимому индексу в нашем списке. Чтобы избежать этого, обязательно оставайтесь в пределах досягаемости.

Автор оригинала: 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)])

выход:

Индекс Списка Python Вне Диапазона С Len()

Объяснение:

В этом фрагменте кода мы создали список под названием 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)

выход:

Индекс Списка Python Вне Диапазона В Цикле

Объяснение:

Здесь список 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() В Цикле
Используйте Range() В Цикле

Выход

Объяснение:

Теперь, когда мы использовали функцию 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 Выходит за пределы диапазона

В повседневном программировании ошибка индекса списка вне диапазона очень распространена. Мы должны убедиться, что мы остаемся в пределах диапазона нашего списка, чтобы избежать этой проблемы. Чтобы избежать этого, мы должны проверить длину списка и код соответственно.

Однако, если у вас есть какие-либо сомнения или вопросы, дайте мне знать в разделе комментариев ниже. Я постараюсь помочь вам как можно скорее.

Счастливого Пифонирования!