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

Например, давайте создадим список из пяти самых густонаселённых штатов США.

states = ['California', 'Texas', 'Florida', 'New York', 'Pennsylvania']

Доступ к штату «Калифорния» можно получить с помощью States[0], к «Техасу» — с помощью States[1] и т. д.

print(states[0])

print(states[1])

Выход:

California
Texas

Как исправить индекс IndexError-List вне диапазона при доступе к элементам Python

Содержание

Что такое ошибка списка IndexError вне диапазона

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

  • Положительный индекс: первому элементу присваивается индекс 0 и так далее.
  • Отрицательный индекс: последнему элементу присваивается индексный номер -1 и так далее, двигаясь назад.

Python IndexError — это распространённая ошибка, с которой сталкиваются многие программисты. Она возникает, когда программа пытается получить доступ к элементу списка по индексу, которого не существует в данном списке.

В приведённом выше примере список состояний содержит 5 элементов, поэтому допустимые индексы — от 0 до 4. Если попробовать получить доступ к состояниям [10] или к любому индексу больше 4, Python выдаст ошибку «индекс списка IndexError вне диапазона».

states = ['California', 'Texas', 'Florida', 'New York', 'Pennsylvania']

print(states[10])

Результат:

Как исправить индекс IndexError-List вне диапазона в Python, обращающемся к неправильным элементам

Это сообщение об ошибке означает, что Python пытается сообщить нам о попытке обратиться к несуществующему элементу в нашем списке. Индекс 10, который мы пытаемся использовать для доступа к элементу в списке нашего штата, выходит за пределы допустимых индексов (от 0 до 4).

Как исправить ошибку

Существует множество способов исправить ошибку IndexError в Python. Давайте рассмотрим их на примерах. Они есть:

  • Проверьте длину списка.
  • Используйте обработку исключений: try-Exception.

Метод 1: проверив длину списка

Одна из простых стратегий – всегда проверять длину списка в Python перед попыткой получить доступ к его элементу. Это можно сделать с помощью встроенной функции len(), которая возвращает количество элементов в списке.

Например, рассмотрим список из пяти лучших команд НБА в Python, основанный на их процентном соотношении побед и поражений.

teams = ['San Antonio Spurs', 'Los Angeles Lakers', 'Boston Celtics', 'Oklahoma City Thunder', 'Utah Jazz']

i = int(input('Enter the index number of the item you want to access: '))

if len(teams) >= i:
    print(teams[i])
else:
    print("Index is out of range")

Вывод: сначала он запросит порядковый номер элемента, а затем выведет результат в соответствии с этим номером.

Enter the index number of the item you want to access: 10
Index is out of range

Как исправить индекс IndexError-List вне диапазона при проверке длины Python

В этой ситуации Python выведет сообщение «Индекс вне диапазона» вместо того, чтобы вызывать ошибку, поскольку длина команд не превышает пяти. Таким образом, мы можем проверить длину списка и устранить ошибку IndexError вне диапазона в Python.

Метод 2: с помощью обработки исключений: try-Exception

Другой подход — использовать блоки Python Try/Except для перехвата и обработки исключений. Рассмотрим пример: предположим, у нас есть список Великих озёр в Python, и мы пытаемся получить доступ к несуществующему элементу по индексу.

great_lakes = ['Superior', 'Michigan', 'Huron', 'Erie', 'Ontario']

try:
    print(great_lakes[6])
except IndexError:
    print("That lake does not exist in the Great Lakes list")

Вывод: этот код пытается вывести на экран элемент great_lakes[6]. Если возникнет ошибка IndexError, то вместо этого Python выведет сообщение «Этого озера нет в списке Великих озер».

That lake does not exist in the Great Lakes list

Как исправить индекс IndexError-List вне диапазона в Python с помощью try-Except

Заключение

В завершение, важно понимать, как работают индексы списков в Python, и знать о распространённой ошибке «IndexError: list index out of range». Это поможет нам избежать проблем при работе со списками в нашем коде.

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

Добавить комментарий