Online Guide

How to fix Indexerror list index out of range in Python

In programming, there are a number of errors that programmers may encounter. One of the most common errors is the Indexerror list index out of range. In Python, an Indexerror list index out of range error can be avoided if an index variable is given a default value before it is used in the code.

If you are having troubles with Python’s exception Indexerror list index out of range, then this article is for you. This article will help you to identify the issue and will offer suggestions on how to fix it if possible. The first thing that you want to do is to take a look at the code. If there are any indexes present in the code, be sure they are within range.

Solution: Index error list index out of range in Python

Indexerror list index out of range in Python is a common error that can be caused by many reasons. It could be caused by misusing the indexing operator or by passing an invalid value to a list function.

Question: Can someone explain to me why this for loop doesn’t work. I’m trying something similar in another program that is using N as a parameter within the list, but it’s not working.

    N = [20,40,60,80]

    for j in N:
        print(j)
        for i in range(0,N[j]):
            print(i)

Solution:

You could do:

N = [20,40,60,80]

for j in range(len(N)):
#        ^^^^^^^^^^^^^
    print(j)
    for i in range(0,N[j]):
        print(i)

or

you could use enumerate

N = [20,40,60,80]
for index, j in enumerate(N):
    print(j)
    for i in range(0,N[index]):
        print(i)

Try:

for i in range(0,j):

Instead of:

for i in range(0,N[j]):

If you want to access whats actually in the list with respect to an index, try this:

N = [20,40,60,80]
for i in range(len(N)):
    print(i, "->", N[i])

Which outputs:

0 -> 20
1 -> 40
2 -> 60
3 -> 80

If you want just the numbers:

for number in N:
    print(number)

If you want both the index and the number in a more pythonic manner:

for index, number in enumerate(N):
    print(index, "->", number)

Which outputs:

0 -> 20
1 -> 40
2 -> 60
3 -> 80

Related Articles

Leave a Reply

Your email address will not be published.

Back to top button