List index out of range python ошибка как исправить
Перейти к содержимому

List index out of range python ошибка как исправить

Indexerror: list Index Out of Range in Python

If you are working with lists in Python, you have to know the index of the list elements. This will help you access them and perform operations on them such as printing them or looping through the elements. But in case you mention an index in your code that is outside the range of the list, you will encounter an IndexError.

List index out of range” error occurs in Python when we try to access an undefined element from the list.

The only way to avoid this error is to mention the indexes of list elements properly.

In the above example, we have created a list named “list_fruits” with three values apple, banana, and orange. Here we are trying to print the value at the index [3].

And we know that the index of a list starts from 0 that’s why in the list, the last index is 2, not 3.

Due to which if we try to print the value at index [3] it will give an error.

Correct Example:

1. Example with «while» Loop

In the above case, the error occurs inline 5, as shown in output where print(list_fruits[i]) means that the value of “i” exceeds the index value of list “list_fruits.”

If you need to check why this error occurs, print the value of “i” just before “print(list_fruits[i])” statement.

print(list_fruits[i])

In the above example output, we can see that the value of ‘i’ goes to “3”, whereas our list index is only up to 2.

Solution for this error

Output:

2. Example with «for» Loop:

In the above example, we are printing the value at index 3, but the out list has indexed only up to 2.

To avoid such type of error, we have to run for loop in the range of “list” length.

Solution:

Conclusion

We have seen the different situations where the list index out of range error might occur. You can check the length of the list using before performing operations or using the indexes.

List Index Out of Range – Python Error Message Solved

Dionysia Lemonaki

Dionysia Lemonaki

List Index Out of Range – Python Error Message Solved

In this article you’ll see a few of the reasons that cause the list index out of range Python error.

Besides knowing why this error occurs in the first place, you’ll also learn some ways to avoid it.

Let’s get started!

How to Create a List in Python

To create a list object in Python, you need to:

  • Give the list a name,
  • Use the assignment operator, = ,
  • and include 0 or more list items inside square brackets, [] . Each list item needs to be separated by a comma.

For example, to create a list of names you would do the following:

The code above created a list called names that has four values: Kelly, Nelly, Jimmy, Lenny .

How to Check the Length of a List in Python

To check the length of a list in Python, use Python’s build-in len() method.

len() will return an integer, which will be the number of items stored in the list.

There are four items stored in the list, therefore the length of the list will be four.

How to Access Individual List Items in Python

Each item in a list has its own index number.

Indexing in Python, and most modern programming languages, starts at 0.

This means that the first item in a list has an index of 0, the second item has an index of 1, and so on.

You can use the index number to access the individual item.

To access an item in a list using its index number, first write the name of the list. Then, inside square brackets, include the intiger that corresponds with the item’s index number.

Taking the example from earlier, this is how you would access each item inside the list using its index number:

You can also use negative indexing to access items inside lists in Python.

To access the last item, you use the index value of -1. To acces the second to last item, you use the index value of -2.

Here is how you would access each item inside a list using negative indexing:

Why does the Indexerror: list index out of range error occur in Python?

Using an index number that is out of the range of the list

You’ll get the Indexerror: list index out of range error when you try and access an item using a value that is out of the index range of the list and does not exist.

This is quite common when you try to access the last item of a list, or the first one if you’re using negative indexing.

Let’s go back to the list we’ve used so far.

Say I want to access the last item, «Lenny», and try to do so by using the following code:

Generally, the index range of a list is 0 to n-1 , with n being the total number of values in the list.

With the total values of the list above being 4 , the index range is 0 to 3 .

Now, let’s try to access an item using negative indexing.

Say I want to access the first item in the list, «Kelly», by using negative indexing.

When using negative indexing, the index range of a list is -1 to -n , where -n the total number of items contained in the list.

With the total number of items in the list being 4 , the index range is -1 to -4 .

Using the wrong value in the range() function in a Python for loop

You’ll get the Indexerror: list index out of range error when iterating through a list and trying to access an item that doesn’t exist.

One common instance where this can occur is when you use the wrong integer in Python’s range() function.

The range() function typically takes in one integer number, which indicates where the counting will stop.

For example, range(5) indicates that the counting will start from 0 and end at 4 .

So, by default, the counting starts at position 0 , is incremented by 1 each time, and the number is up to – but not including – the position where the counting will stop.

Let’s take the following example:

Here, the list names has four values.

I wanted to loop through the list and print out each value.

When I used range(5) I was telling the Python interpreter to print the values that are at the positions 0 to 4 .

However, there is no item in position 4.

You can see this by first printing out the number of the position and then the value at that position.

You see that at position 0 is «Kelly», at position 1 is «Nelly», at position 2 is «Jimmy» and at position 3 is «Lenny».

When it comes to position four, which was specified with range(5) which indicates positions of 0 to 4 , there is nothing to print out and therefore the interpreter throws an error.

One way to fix this is to lower the integer in range() :

Another way to fix this when using a for loop is to pass the length of the list as an argument to the range() function. You do this by using the len() built-in Python function, as shown in an earlier section:

When passing len() as an argument to range() , make sure that you don’t make the following mistake:

After running the code, you’ll again get an IndexError: list index out of range error:

Conclusion

Hopefully this article gave you some insight into why the IndexError: list index out of range error occurs and some ways you can avoid it.

If you want to learn more about Python, check out freeCodeCamp’s Python Certification. You’ll start learning in an interacitve and beginner-friendly way. You’ll also build five projects at the end to put into practice and help reinforce what you learned.

Что означает ошибка IndexError: list index out of range

Ситуация: у нас есть проект, в котором мы математически моделируем игру в рулетку. Мы хотим обработать отдельно нечётные числа, которые есть на рулетке, — для этого нам нужно выбросить из списка все чётные. Проверка простая: если число делится на 2 без остатка — оно чётное и его можно удалить. Для этого пишем такой код:

Но при запуске компьютер выдаёт ошибку:

❌ IndexError: list index out of range

Почему так произошло, ведь мы всё сделали правильно?

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

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

В нашем примере случилось вот что:

  1. Мы объявили список из чисел от 1 до 36.
  2. Организовали цикл, который зависит от длины списка и на первом шаге получает его размер.
  3. Внутри цикла проверяем на чётность, и если чётное — удаляем число из списка.
  4. Фактический размер списка меняется, а цикл держит в голове старый размер, который больше.
  5. Когда мы по старой длине списка обращаемся к очередному элементу, то выясняется, что список закончился и обращаться уже не к чему.
  6. Компьютер останавливается и выводит ошибку.

Что делать с ошибкой IndexError: list index out of range

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

Если нужно обработать список, то результаты можно складывать в новую переменную, например так:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *