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

Давайте рассмотрим, что означает эта ошибка, ее причину и как ее удалить без лишних слов.

Что означает ошибка «индекс списка вне диапазона» в Python?

Когда Python выдает ошибку «индекс списка вне диапазона», это означает, что вы пытались разбить список за пределы его последнего индекса.

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

Например, в списке из пяти языков программирования:

Языки = ["Python", "Go", "PHP", "C", "Perl"]

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

instagram viewer
печать (языки[5])
Выход:
IndexError: индекс списка вне допустимого диапазона

В приведенном выше примере Python пытается найти пятый индекс в списке, и когда он не может его найти, он выдает ошибку индекса списка. Это потому, что первый элемент (Python) имеет нулевой индекс, а последний (Perl) — четвертый.

Это основа ошибки «индекс списка вне диапазона». Как уже говорилось, Python выдает его всякий раз, когда вы пытаетесь разбить список за пределы его последнего индекса.

Как удалить ошибку «индекс списка вне диапазона» в Python

Итак, как вы можете удалить эту ошибку? Это просто.

В дополнение к предыдущему разделу выше вы можете распечатать индексы, используя дляцикл в понимании списка:

indexes = [languages.index (i) для i в языках]
печать (индексы)
Выход:
[0, 1, 2, 3, 4]

Индекс списка является основой нарезки в программировании. Итак, поскольку вы знаете самый высокий индекс списка для вывода выше (4), вы можете расшифровать предел среза.

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

печать (языки[4])
Выход:
Перл

Теперь он выводит правильный результат.

Что делать, если вы хотите пройтись по списку, используя его индекс?

Помимо обычного Python для цикла, вы также можете использовать концепцию индекса для перебора списка. Хотя этот метод может показаться трудным, иногда он неизбежен. Например, это удобно, если вы хотите отсортировать список в обратном порядке.

Этот метод работает, устанавливая начальный индекс и увеличивая или уменьшая его на единицу до последнего доступного индекса.

Чтобы напечатать элементы с возрастающим порядковым номером (от первого до последнего элемента), например:

индекс = 0 # Начальный индекс
для я на языках:
печать (Языки[индекс])
индекс +=1
Выход:
Питон
Идти
PHP
С
Перл

Но что произойдет, если вы установите начальный индекс равным единице вместо нуля? Посмотри:

индекс = 1 # Начальный индекс
для я на языках:
печать (Языки[индекс])
индекс +=1
Выход:
Идти
PHP
С
Перл
IndexError: индекс списка вне допустимого диапазона

В приведенном выше примере индексация начинается со второго элемента (индекс один, Идти). Таким образом, при увеличении цикл не останавливается, пока не завершит подсчет пяти элементов. Это заставляет индекс увеличиваться на единицу до последнего элемента.

Следовательно, срез попадает в пятый индекс, который недоступен. Поэтому он выдает ошибку индекса. Это означает, что индекс увеличивается по следующему шаблону для каждого элемента:

1=1, 1+1=2, 1+2=3, 1+3=4, 1+4=5 

Вместо правильного шаблона, который:

0=0, 0+1=1, 1+1=2, 1+2=3, 1+3=4

Как видите, максимальное значение вышеуказанного индекса равно четырем, что правильно, поскольку цикл начинает увеличивать индексацию с нуля.

Таким образом, установка начального индекса равным нулю, как вы сделали в первом примере в этом разделе, устраняет ошибку «индекс списка вне диапазона»:

индекс = 0 # Начальный индекс
для я на языках:
печать (Языки[индекс])
индекс +=1 #Увеличиваем индекс на единицу для каждой итерации

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

Это полезно, если вы не уверены в значении длины списка, поступающего из источника, скажем, из базы данных.

Вот пример:

индекс = (len (языки)-1)
для я на языках:
печать (Языки[индекс])
индекс -=1 #Уменьшать индекс на единицу для каждой итерации
Выход:
Перл
С
PHP
Идти
Питон

Но если не вычесть единицу из длины списка, возникает ошибка «список вне индекса диапазона»:

индекс = (len (языки)-1)
для я на языках:
печать (Языки[индекс])
индекс -=1
Выход:
IndexError: индекс списка вне допустимого диапазона

Приведенный выше код выдает ошибку индекса, потому что длина списка равна пяти, и он пытается начать индексирование с пяти до нуля, тогда как самый высокий индекс равен четырем. Это означает, что в списке нет пятого индекса (шестого элемента).

Получите творческие списки обработки в Python

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

Как вы узнали, удалить ошибку «индекс списка вне диапазона» довольно просто. Если вы столкнетесь с этой ошибкой в ​​своих будущих программах, независимо от сложности списка, вы можете применить концепции, описанные в этом посте, для решения проблемы.

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

Как сортировать почти любой тип списка в Python

Списки с несколькими типами данных могут быстро выйти из-под контроля. Вот как их отсортировать с помощью Python.

Читать далее

ДелитьсяТвитнутьЭл. адрес
Похожие темы
  • Программирование
  • Питон
  • Программирование
  • Советы по кодированию
Об авторе
Идову Омисола (опубликовано 136 статей)

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

Другие работы Идову Омисолы

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться