Python IndexError: list index out of range

The IndexError: list index out of range occurs if you access an invalid index in your Python list, Generally it is raised when attempting to retrieve an index from a sequence (e.g., list, tuple, etc), and the index is not found in the given sequence.

Below is a classic example that raises IndexError: list index out of range

test = list(range(53))
IndexError: list index out of range
IndexError                                Traceback (most recent call last)
c:\Projects\Tryouts\ in 
      1 test = list(range(53))
----> 2 test[53]

IndexError: list index out of range

The error message indicates we are trying to access an index that is not present in the list. In this case, we are trying to print an index of 53 which is not present and in Python, the index number starts from 0, so the first element of the list would be 0, and the last element would be array length-1.

The Problem: IndexError: list index out of range

The common reason which leads to this exception IndexError: list index out of range is that

  • The list is iterated with an index starting from 1 instead of 0.
  • The last item is accessed with the length of the list. It should be accessed as Len(list)-1.
  • When you forget to use range() to iterate over a list.

The solution to Indexerror: list index out of range

There are several ways to resolve indexerror in Python. It is not recommended to access the list or an array in any programming by using a hardcoded index value. It often leads to an exception, instead use one of the below best practices.

  • Using len() function
  • Using for loop with ‘in’
  • Using for loop with range()

Solution 1 – Using len() function

If the list is created dynamically, it is difficult to predict the index and access the element. In such a case, always validate the length of the list before accessing the list element.

numbers = [1, 2, 3, 4, 6, 8, 10]
index = 3
if index < len(numbers):

#Output 4

Solution 2 – Using for loop with ‘in’

Use Membership operators to validate the membership of a value. Membership operators are used to iterating all the elements in a sequence, such as strings, lists, or tuples. The error IndexError: list index out of range will be resolved by the membership operators.

numbers = [1, 2, 3, 4, 6, 8, 10]
for i in numbers:

Solution 3 – Using for loop with range()

The range() function returns a sequence of numbers, starting from 0 by default, increments by 1 (by default), and stops before a specified number. The range function will help in iterating items in the for a loop.

Syntax: range(start, stop, step) 

start (optional): an integer that indicates the start of the sequence. The default value is 0 in case left empty.

  • stop: An integer that indicates where the sequence should stop.
  • step (optional): used if you would like to increment by a number greater than 1. The default value is 1
numbers = [1, 2, 3, 4, 6, 8, 10]
for i in range(len(numbers)):

Leave a Reply

Your email address will not be published.

Sign Up for Our Newsletters

Get notified of the best deals on our WordPress themes.

You May Also Like
Syntaxerror Unexpected Eof While Parsing

SyntaxError: unexpected EOF while parsing

Table of Contents Hide What is unexpected EOF while parsing error?Scenario 1 – Incomplete parameters may cause this kind of errors.Scenario 2: Incomplete functions along with statements, loops, try and…
View Post
Python String Isdecimal()

Python String isdecimal()

Table of Contents Hide isdecimal() Syntaxisdecimal() Parametersisdecimal() Return ValueExample 1: Working of isdecimal()Example 2: String Containing digits and Numeric Characters The Python String isdecimal() method is a built-in function that…
View Post