Python IndexError: list index out of range
Tags: python, programming, codenewbie
Published: 2021-09-04 09:44:20

---
title: Python IndexError: list index out of range
published: true
date: 2021-09-02 04:44:02 UTC
tags: #python #programming #codenewbie
canonical_url: https://itsmycode.com/python-indexerror-list-index-out-of-range/
---

ItsMyCode |

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**

```python
test = list(range(53))
test[53]

IndexError: list index out of range
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
c:\Projects\Tryouts\listindexerror.py 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.

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

#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.

```python
numbers = [1, 2, 3, 4, 6, 8, 10]
for i in numbers:
    print(i)

```

## 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

```python
numbers = [1, 2, 3, 4, 6, 8, 10]
for i in range(len(numbers)):
    print(i)

```

The post [Python IndexError: list index out of range](https://itsmycode.com/python-indexerror-list-index-out-of-range/) appeared first on [ItsMyCode](https://itsmycode.com).