How to fix IndexError: list assignment index out of range in Python

by Nathan Sebhastian

Posted on Apr 05, 2023

Reading time: 2 minutes

openpyxl list assignment index out of range

When programming with Python, you might encounter the following error:

This error occurs when you attempt to assign a value to a list using an index that doesn’t already exist in the list.

This tutorial will show you an example that causes this error and how to fix it in practice

How to reproduce this error

Suppose you create a list in your code as follows:

Next, you assign a new value at index [2] in the list as follows:

You’ll get this error:

The error occurs because the index number [2] doesn’t exist in the animals list. Index assignment in a list only allows you to change existing items.

Because the list has two items, the index number ranges from 0 to 1. Assigning a value to any other index number will cause this error.

How to fix this error

To resolve this error, you need to use the append() method to add a new element to the list.

For example, to add the ‘bird’ item:

As you can see, now the ‘bird’ value is added to the list successfully.

Adding the value using the append() method increases the list index range, which enables you to modify the item at the new index using the list assignment syntax.

To summarize, use the append() method when you’re adding a new element and increasing the size of the list, and use the list assignment index when you want to change an existing item in the list.

I hope this tutorial is helpful. Until next time! 👋

Take your skills to the next level ⚡️

I'm sending out an occasional email with the latest tutorials on programming, web development, and statistics. Drop your email in the box below and I'll send new stuff straight into your inbox!

Hello! This website is dedicated to help you learn tech and data science skills with its step-by-step, beginner-friendly tutorials. Learn statistics, JavaScript and other programming languages using clear examples written for people.

Learn more about this website

Connect with me on Twitter

Or LinkedIn

Type the keyword below and hit enter

Click to see all tutorials tagged with:

IndexError: list assignment index out of range in Python

avatar

Last updated: Apr 8, 2024 Reading time · 9 min

banner

# Table of Contents

  • IndexError: list assignment index out of range
  • (CSV) IndexError: list index out of range
  • sys.argv[1] IndexError: list index out of range
  • IndexError: pop index out of range
Make sure to click on the correct subheading depending on your error message.

# IndexError: list assignment index out of range in Python

The Python "IndexError: list assignment index out of range" occurs when we try to assign a value at an index that doesn't exist in the list.

To solve the error, use the append() method to add an item to the end of the list, e.g. my_list.append('b') .

indexerror list assignment index out of range

Here is an example of how the error occurs.

assignment to index out of range

The list has a length of 3 . Since indexes in Python are zero-based, the first index in the list is 0 , and the last is 2 .

Trying to assign a value to any positive index outside the range of 0-2 would cause the IndexError .

# Adding an item to the end of the list with append()

If you need to add an item to the end of a list, use the list.append() method instead.

adding an item to end of list with append

The list.append() method adds an item to the end of the list.

The method returns None as it mutates the original list.

# Changing the value of the element at the last index in the list

If you meant to change the value of the last index in the list, use -1 .

change value of element at last index in list

When the index starts with a minus, we start counting backward from the end of the list.

# Declaring a list that contains N elements and updating a certain index

Alternatively, you can declare a list that contains N elements with None values.

The item you specify in the list will be contained N times in the new list the operation returns.

Make sure to wrap the value you want to repeat in a list.

If the list contains a value at the specific index, then you are able to change it.

# Using a try/except statement to handle the error

If you need to handle the error if the specified list index doesn't exist, use a try/except statement.

The list in the example has 3 elements, so its last element has an index of 2 .

We wrapped the assignment in a try/except block, so the IndexError is handled by the except block.

You can also use a pass statement in the except block if you need to ignore the error.

The pass statement does nothing and is used when a statement is required syntactically but the program requires no action.

# Getting the length of a list

If you need to get the length of the list, use the len() function.

The len() function returns the length (the number of items) of an object.

The argument the function takes may be a sequence (a string, tuple, list, range or bytes) or a collection (a dictionary, set, or frozen set).

If you need to check if an index exists before assigning a value, use an if statement.

This means that you can check if the list's length is greater than the index you are trying to assign to.

# Trying to assign a value to an empty list at a specific index

Note that if you try to assign to an empty list at a specific index, you'd always get an IndexError .

You should print the list you are trying to access and its length to make sure the variable stores what you expect.

# Use the extend() method to add multiple items to the end of a list

If you need to add multiple items to the end of a list, use the extend() method.

The list.extend method takes an iterable (such as a list) and extends the list by appending all of the items from the iterable.

The list.extend method returns None as it mutates the original list.

# (CSV) IndexError: list index out of range in Python

The Python CSV "IndexError: list index out of range" occurs when we try to access a list at an index out of range, e.g. an empty row in a CSV file.

To solve the error, check if the row isn't empty before accessing it at an index, or check if the index exists in the list.

csv indexerror list index out of range

Assume we have the following CSV file.

And we are trying to read it as follows.

# Check if the list contains elements before accessing it

One way to solve the error is to check if the list contains any elements before accessing it at an index.

The if statement checks if the list is truthy on each iteration.

All values that are not truthy are considered falsy. The falsy values in Python are:

  • constants defined to be falsy: None and False .
  • 0 (zero) of any numeric type
  • empty sequences and collections: "" (empty string), () (empty tuple), [] (empty list), {} (empty dictionary), set() (empty set), range(0) (empty range).

# Check if the index you are trying to access exists in the list

Alternatively, you can check whether the specific index you are trying to access exists in the list.

This means that you can check if the list's length is greater than the index you are trying to access.

# Use a try/except statement to handle the error

Alternatively, you can use a try/except block to handle the error.

We try to access the list of the current iteration at index 1 , and if an IndexError is raised, we can handle it in the except block or continue to the next iteration.

# sys.argv [1] IndexError: list index out of range in Python

The sys.argv "IndexError: list index out of range in Python" occurs when we run a Python script without specifying values for the required command line arguments.

To solve the error, provide values for the required arguments, e.g. python main.py first second .

sys argv indexerror list index out of range

I ran the script with python main.py .

The sys.argv list contains the command line arguments that were passed to the Python script.

# Provide all of the required command line arguments

To solve the error, make sure to provide all of the required command line arguments when running the script, e.g. python main.py first second .

Notice that the first item in the list is always the name of the script.

It is operating system dependent if this is the full pathname or not.

# Check if the sys.argv list contains the index

If you don't have to always specify all of the command line arguments that your script tries to access, use an if statement to check if the sys.argv list contains the index that you are trying to access.

I ran the script as python main.py without providing any command line arguments, so the condition wasn't met and the else block ran.

We tried accessing the list item at index 1 which raised an IndexError exception.

You can handle the error or use the pass keyword in the except block.

# IndexError: pop index out of range in Python

The Python "IndexError: pop index out of range" occurs when we pass an index that doesn't exist in the list to the pop() method.

To solve the error, pass an index that exists to the method or call the pop() method without arguments to remove the last item from the list.

indexerror pop index out of range

The list has a length of 3 . Since indexes in Python are zero-based, the first item in the list has an index of 0 , and the last an index of 2 .

If you need to remove the last item in the list, call the method without passing it an index.

The list.pop method removes the item at the given position in the list and returns it.

You can also use negative indices to count backward, e.g. my_list.pop(-1) removes the last item of the list, and my_list.pop(-2) removes the second-to-last item.

Alternatively, you can check if an item at the specified index exists before passing it to pop() .

This means that you can check if the list's length is greater than the index you are passing to pop() .

An alternative approach to handle the error is to use a try/except block.

If calling the pop() method with the provided index raises an IndexError , the except block is run, where we can handle the error or use the pass keyword to ignore it.

# Additional Resources

You can learn more about the related topics by checking out the following tutorials:

  • IndexError: index 0 is out of bounds for axis 0 with size 0
  • IndexError: invalid index to scalar variable in Python
  • IndexError: pop from empty list in Python [Solved]
  • Replacement index 1 out of range for positional args tuple
  • IndexError: too many indices for array in Python [Solved]
  • IndexError: tuple index out of range in Python [Solved]

book cover

Borislav Hadzhiev

Web Developer

buy me a coffee

Copyright © 2024 Borislav Hadzhiev

Navigation Menu

Search code, repositories, users, issues, pull requests..., provide feedback.

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly.

To see all available qualifiers, see our documentation .

  • Notifications

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in openpyxl — IndexError: list index out of range #331

@sentry-io

sentry-io bot commented Dec 10, 2019

@Bjwebb

Bjwebb commented Dec 10, 2019

Sorry, something went wrong.

@KDuerden

KDuerden commented Dec 10, 2019

Bjwebb commented dec 11, 2019, kduerden commented dec 11, 2019 • edited, sentry-io bot commented may 20, 2020.

@mariongalley

No branches or pull requests

@Bjwebb

openpyxl list assignment index out of range

IndexError: list index out of range when using load_workbook

Stephen Hill's profile photo

Stephen Hill

Charlie Clark's profile photo

Charlie Clark

On 12 Jul 2022, at 11:24, Stephen Hill wrote:

Hi, I have read around a little, and have seen that the above error can be caused by style errors etc. in the file, but none of the monkey patches seem to work!. I was wondering whether anyone had any workarounds etc. or ways to change the file so that it can be opened by openpyxl. The file i am having trouble with is attached.

thanks for the e-mail and the file and best of all by writing to the mailing list first.

The exception is coming from the defined names and I think this is due to the combination of chartsheets abdand the weird indexing that Excel uses in the workbook part:

there are 8 worksheets but 20 or child objects in total, so the index 19 probably refers to the last item, which is probably "New Monthly Metals", which itself has been handily given the sheetId 61!

but we use the index to refer to the actual worksheet (or chartsheet)

So the code probably needs updating to take into account the "modules" that we don't load and wouldn't persist with as sheets anyway: I mean, why would you? I assume these are some kind of VBA modules.

The quickest workaround for this would be to ignore the defined names if you can, ie. monkey patch the reader so that these are not processed.

The file also throws up some errors related to the new custom properties which I'll need to investigate, at least openpyxl has got better at telling you which things it doesn't like.

-- Charlie Clark Managing Director Clark Consulting & Research German Office Sengelsweg 34 Düsseldorf D- 40489 Tel: +49-203-3925-0390 Mobile: +49-178-782-6226

openpyxl list assignment index out of range

Explore your training options in 10 minutes Get Started

  • Graduate Stories
  • Partner Spotlights
  • Bootcamp Prep
  • Bootcamp Admissions
  • University Bootcamps
  • Coding Tools
  • Software Engineering
  • Web Development
  • Data Science
  • Tech Guides
  • Tech Resources
  • Career Advice
  • Online Learning
  • Internships
  • Apprenticeships
  • Tech Salaries
  • Associate Degree
  • Bachelor's Degree
  • Master's Degree
  • University Admissions
  • Best Schools
  • Certifications
  • Bootcamp Financing
  • Higher Ed Financing
  • Scholarships
  • Financial Aid
  • Best Coding Bootcamps
  • Best Online Bootcamps
  • Best Web Design Bootcamps
  • Best Data Science Bootcamps
  • Best Technology Sales Bootcamps
  • Best Data Analytics Bootcamps
  • Best Cybersecurity Bootcamps
  • Best Digital Marketing Bootcamps
  • Los Angeles
  • San Francisco
  • Browse All Locations
  • Digital Marketing
  • Machine Learning
  • See All Subjects
  • Bootcamps 101
  • Full-Stack Development
  • Career Changes
  • View all Career Discussions
  • Mobile App Development
  • Cybersecurity
  • Product Management
  • UX/UI Design
  • What is a Coding Bootcamp?
  • Are Coding Bootcamps Worth It?
  • How to Choose a Coding Bootcamp
  • Best Online Coding Bootcamps and Courses
  • Best Free Bootcamps and Coding Training
  • Coding Bootcamp vs. Community College
  • Coding Bootcamp vs. Self-Learning
  • Bootcamps vs. Certifications: Compared
  • What Is a Coding Bootcamp Job Guarantee?
  • How to Pay for Coding Bootcamp
  • Ultimate Guide to Coding Bootcamp Loans
  • Best Coding Bootcamp Scholarships and Grants
  • Education Stipends for Coding Bootcamps
  • Get Your Coding Bootcamp Sponsored by Your Employer
  • GI Bill and Coding Bootcamps
  • Tech Intevriews
  • Our Enterprise Solution
  • Connect With Us
  • Publication
  • Reskill America
  • Partner With Us

Career Karma

  • Resource Center
  • Bachelor’s Degree
  • Master’s Degree

Python indexerror: list assignment index out of range Solution

An IndexError is nothing to worry about. It’s an error that is raised when you try to access an index that is outside of the size of a list. How do you solve this issue? Where can it be raised?

In this article, we’re going to answer those questions. We will discuss what IndexErrors are and how you can solve the “list assignment index out of range” error. We’ll walk through an example to help you see exactly what causes this error.

Find your bootcamp match

Without further ado, let’s begin!

The Problem: indexerror: list assignment index out of range

When you receive an error message, the first thing you should do is read it. An error message can tell you a lot about the nature of an error.

Our error message is: indexerror: list assignment index out of range.

IndexError tells us that there is a problem with how we are accessing an index . An index is a value inside an iterable object, such as a list or a string.

The message “list assignment index out of range” tells us that we are trying to assign an item to an index that does not exist.

In order to use indexing on a list, you need to initialize the list. If you try to assign an item into a list at an index position that does not exist, this error will be raised.

An Example Scenario

The list assignment error is commonly raised in for and while loops .

We’re going to write a program that adds all the cakes containing the word “Strawberry” into a new array. Let’s start by declaring two variables:

The first variable stores our list of cakes. The second variable is an empty list that will store all of the strawberry cakes. Next, we’re going to write a loop that checks if each value in “cakes” contains the word “Strawberry”.

If a value contains “Strawberry”, it should be added to our new array. Otherwise, nothing will happen. Once our for loop has executed, the “strawberry” array should be printed to the console. Let’s run our code and see what happens:

As we expected, an error has been raised. Now we get to solve it!

The Solution

Our error message tells us the line of code at which our program fails:

The problem with this code is that we are trying to assign a value inside our “strawberry” list to a position that does not exist.

When we create our strawberry array, it has no values. This means that it has no index numbers. The following values do not exist:

We are trying to assign values to these positions in our for loop. Because these positions contain no values, an error is returned.

We can solve this problem in two ways.

Solution with append()

First, we can add an item to the “strawberry” array using append() :

The append() method adds an item to an array and creates an index position for that item. Let’s run our code: [‘Strawberry Tart’, ‘Strawberry Cheesecake’].

Our code works!

Solution with Initializing an Array

Alternatively, we can initialize our array with some values when we declare it. This will create the index positions at which we can store values inside our “strawberry” array.

To initialize an array, you can use this code:

This will create an array with 10 empty values. Our code now looks like this:

Let’s try to run our code:

Our code successfully returns an array with all the strawberry cakes.

This method is best to use when you know exactly how many values you’re going to store in an array.

Venus profile photo

"Career Karma entered my life when I needed it most and quickly helped me match with a bootcamp. Two months after graduating, I found my dream job that aligned with my values and goals in life!"

Venus, Software Engineer at Rockbot

Our above code is somewhat inefficient because we have initialized “strawberry” with 10 empty values. There are only a total of three cakes in our “cakes” array that could possibly contain “Strawberry”. In most cases, using the append() method is both more elegant and more efficient.

IndexErrors are raised when you try to use an item at an index value that does not exist. The “indexerror: list assignment index out of range” is raised when you try to assign an item to an index position that does not exist.

To solve this error, you can use append() to add an item to a list. You can also initialize a list before you start inserting values to avoid this error.

Now you’re ready to start solving the list assignment error like a professional Python developer!

About us: Career Karma is a platform designed to help job seekers find, research, and connect with job training programs to advance their careers. Learn about the CK publication .

What's Next?

icon_10

Get matched with top bootcamps

Ask a question to our community, take our careers quiz.

James Gallagher

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Apply to top tech training programs in one click

Admin message

This instance will be upgraded to Heptapod 1.5.2 (GitLab 16.11.3) on 2024-05-23 at 14:00 UTC+2

openpyxl.load_workbook throws IndexError: list index out of range

Created originally on Bitbucket by Former user

The following code

applied to the attached file throws the following Exception:

Traceback (most recent call last): File "", line 1, in File "D:\WinPrograms\Python3\lib\site-packages\openpyxl\reader\ excel.py ", line 312, in load_workbook reader.read() File "D:\WinPrograms\Python3\lib\site-packages\openpyxl\reader\ excel.py ", line 274, in read self.read_worksheets() File "D:\WinPrograms\Python3\lib\site-packages\openpyxl\reader\ excel.py ", line 228, in read_worksheets ws_parser.bind_all() File "D:\WinPrograms\Python3\lib\site-packages\openpyxl\worksheet_reader.py", line 403, in bind_all self.bind_cells() File "D:\WinPrograms\Python3\lib\site-packages\openpyxl\worksheet_reader.py", line 328, in bind_cells style = self.ws.parent._cell_styles[cell['style_id']] IndexError: list index out of range

Attachments: Orbis_Export_201.xlsx

How to Fix the “List index out of range” Error in Python

Author's photo

  • learn python

At many points in your Python programming career, you’re going to run into the “List index out of range” error while writing your programs. What does this mean, and how do we fix this error? We’ll answer that question in this article.

The short answer is: this error occurs when you’re trying to access an item outside of your list’s range. The long answer, on the other hand, is much more interesting. To get there, we’ll learn a lot about how lists work, how to index things the bad way and the good way, and finally how to solve the above-mentioned error.

This article is aimed at Python beginners who have little experience in programming. Understanding this error early will save you plenty of time down the road. If you’re looking for some learning material, our Python Basics track includes 3 interactive courses bundled together to get you on your feet.

Indexing Python Lists

Lists are one of the most useful data structures in Python. And they come with a whole bunch of useful methods . Other Python data structures include tuples, arrays, dictionaries, and sets, but we won’t go into their details here. For hands-on experience with these structures, we have a Python Data Structures in Practice course which is suitable for beginners.

A list can be created as follows:

Instead of using square brackets ([]) to define your list, you can also use the list() built-in function.

There are already a few interesting things to note about the above example. First, you can store any data type in a list, such as an integer, string, floating-point number, or even another list. Second, the elements don’t have to be unique: the integer 1 appears twice in the above example.

The elements in a list are indexed starting from 0. Therefore, to access the first element, do the following:

Our list contains 6 elements, which you can get using the len() built-in function. To access the last element of the list, you might naively try to do the following:

This is equivalent to print(x[len(x)]) . Since list indexing starts from 0, the last element has index len(x)–1 . When we try to access the index len(x) , we are outside the range of the list and get the error. A more robust way to get the final element of the list looks like this:

While this works, it’s not the most pythonic way. A better method exploits a nice feature of lists – namely, that they can be indexed from the end of the list by using a negative number as the index. The final element can be printed as follows:

The second last element can be accessed with the index -2, and so on. This means using the index -6 will get back to the first element. Taking it one step further:

Notice this asymmetry. The first error was trying to access the element after the last with the index 6, and the second error was trying to access the element before the first with the index -7. This is due to forward indexing starting at 0 (the start of the list), and backwards indexing starting at -1 (the end of the list). This is shown graphically below:

list index out of range

Looping Through Lists

Whenever you’re working with lists, you’ll need to know about loops. A loop allows you to iterate through all the elements in a list.

The first type of loop we’ll take a look at is the while loop. You have to be a little more careful with while loops, because a small mistake will make them run forever, requiring you to force the program to quit. Once again, let’s try to naively loop through our list:

In this example we define our index, i , to start from zero. After every iteration of our while loop, we print the list element and then go to the next index with the += assignment operator. (This is a neat little trick, which is like doing i=i+1 .)

By the way, if you forget the final line, you’ll get an infinite loop.

We encountered the index error for the same reason as in the first section – the final element has index len(x)-1 . Just modify the condition of the while statement to reflect this, and it will work without problems.

Most of your looping will be done with a for loop, which we’ll now turn our attention to. A better method to loop through the elements in our list without the risk of running into the index error is to take advantage of the range() built-in function. This takes three arguments, of which only the stop argument is required. Try the following:

The combination of the range() and len() built-in functions takes care of worrying about when to stop indexing our list to avoid the index out of range error entirely. This method, however, is only useful if you care about knowing what the index is.

For example, maybe you want to print out the index and the element. In that case, all you need to do is modify the print() statement to print(i, x[i]) . Try doing this for yourself to see the result. Alternatively, you can use The enumerate() function in Python.

If you just want to get the element, there’s a simpler way that’s much more intuitive and readable. Just loop through the elements of the list directly:

If the user inputs an index outside the range of the list (e.g. 6), they’ll run into the list index error again. We can modify the function to check the input value with an if statement:

Doing this prevents our program from crashing if the index is out of range. You can even use a negative index in the above function.

There are other ways to do error handling in Python that will help you avoid errors like “list index out of range”. For example, you could implement a try-exceptaa block instead of the if-else statement.

To see a try-except block in action, let’s handle a potential index error in the get_value() function we wrote above. Preventing the error looks like this:

As you can probably see, the second method is a little more concise and readable. It’s also less error-prone than explicitly checking the input index with an if-else statement.

Master the “List index out of range” Error in Python

You should now know what the index out of range error in Python means, why it pops up, and how to prevent it in your Python programs.

A useful way to debug this error and understand how your programs are running is simply to print the index and compare it to the length of your list.

This error could also occur when iterating over other data structures, such as arrays, tuples, or even when iterating through a string. Using strings is a little different from  using lists; if you want to learn the tools to master this topic, consider taking our Working with Strings in Python course. The skills you learnt here should be applicable to many common use cases.

You may also like

openpyxl list assignment index out of range

How Do You Write a SELECT Statement in SQL?

openpyxl list assignment index out of range

What Is a Foreign Key in SQL?

openpyxl list assignment index out of range

Enumerate and Explain All the Basic Elements of an SQL Query

Datagy logo

  • Learn Python
  • Python Lists
  • Python Dictionaries
  • Python Strings
  • Python Functions
  • Learn Pandas & NumPy
  • Pandas Tutorials
  • Numpy Tutorials
  • Learn Data Visualization
  • Python Seaborn
  • Python Matplotlib

Python IndexError: List Index Out of Range Error Explained

  • November 15, 2021 December 19, 2022

Python IndexError Cover Image

In this tutorial, you’ll learn how all about the Python list index out of range error, including what it is, why it occurs, and how to resolve it.

The IndexError is one of the most common Python runtime errors that you’ll encounter in your programming journey. For the most part, these these errors are quite easy to resolve, once you understand why they occur.

Throughout this tutorial, you’ll learn why the error occurs and walk through some scenarios where you might encounter it. You’ll also learn how to resolve the error in these scenarios .

The Quick Answer:

Table of Contents

What is the Python IndexError?

Let’s take a little bit of time to explore what the Python IndexError is and what it looks like. When you encounter the error, you’ll see an error message displayed as below:

We can break down the text a little bit. We can see here that the message tells us that the index is out of range . This means that we are trying to access an index item in a Python list that is out of range, meaning that an item doesn’t have an index position.

An item that doesn’t have an index position in a Python list, well, doesn’t exist.

In Python, like many other programming languages, a list index begins at position 0 and continues to n-1 , where n is the length of the list (or the number of items in that list).

This causes a fairly common error to occur. Say we are working with a list with 4 items. If we wanted to access the fourth item, you may try to do this by using the index of 4. This, however, would throw the error. This is because the 4 th item actually has the index of 3.

Let’s take a look at a sample list and try to access an item that doesn’t exist:

We can see here that the index error occurs on the last item we try to access.

The simplest solution is to simply not try to access an item that doesn’t exist . But that’s easier said than done. How do we prevent the IndexError from occurring? In the next two sections, you’ll learn how to fix the error from occurring in their most common situations: Python for loops and Python while loops.

Need to check if a key exists in a Python dictionary? Check out this tutorial , which teaches you five different ways of seeing if a key exists in a Python dictionary, including how to return a default value.

Python IndexError with For Loop

You may encounter the Python IndexError while running a Python for loop. This is particularly common when you try to loop over the list using the range() function .

Let’s take a look at the situation where this error would occur:

The way that we can fix this error from occurring is to simply stop the iteration from occurring before the list runs out of items . The way that we can do this is to change our for loop from going to our length + 1, to the list’s length. When we do this, we stop iterating over the list’s indices before the lengths value.

This solves the IndexError since it causes the list to stop iterating at position length - 1 , since our index begins at 0, rather than at 1.

Let’s see how we can change the code to run correctly:

Now that you have an understanding of how to resolve the Python IndexError in a for loop, let’s see how we can resolve the error in a Python while-loop.

Want to learn more about Python for-loops? Check out my in-depth tutorial that takes your from beginner to advanced for-loops user! Want to watch a video instead? Check out my YouTube tutorial here .

Python IndexError with While Loop

You may also encounter the Python IndexError when running a while loop.

For example, it may be tempting to run a while loop to iterate over each index position in a list. You may, for example, write a program that looks like this:

The reason that this program fails is that we iterate over the list one too many times. The reason this is true is that we are using a <= (greater than or equal to sign). Because Python list indices begin at the value 0, their max index is actually equal to the number of items in the list minus 1.

We can resolve this by simply changing the operator a less than symbol, < . This prevents the loop from looping over the index from going out of range.

In the next section, you'll learn a better way to iterate over a Python list to prevent the IndexError .

Want to learn more about Python f-strings? Check out my in-depth tutorial , which includes a step-by-step video to master Python f-strings!

How to Fix the Python IndexError

There are two simple ways in which you can iterate over a Python list to prevent the Python IndexError .

The first is actually a very plain language way of looping over a list. We don't actually need the list index to iterate over a list. We can simply access its items directly.

This directly prevents Python from going beyond the maximum index.

Want to learn how to use the Python zip() function to iterate over two lists? This tutorial teaches you exactly what the zip() function does and shows you some creative ways to use the function.

But what if you need to access the list's index?

If you need to access the list's index and a list item, then a much safer alternative is to use the Python enumerate() function.

When you pass a list into the enumerate() function, an enumerate object is returned. This allows you to access both the index and the item for each item in a list. The function implicitly stops at the maximum index, but allows you to get quite a bit of information.

Let's take a look at how we can use the enumerate() function to prevent the Python IndexError .

We can see here that we the loop stops before the index goes out of range and thereby prevents the Python IndexError .

Check out some other Python tutorials on datagy, including our complete guide to styling Pandas and our comprehensive overview of Pivot Tables in Pandas !

In this tutorial, you learned how to understand the Python IndexError : list item out of range. You learned why the error occurs, including some common scenarios such as for loops and while loops. You learned some better ways of iterating over a Python list, such as by iterating over items implicitly as well as using the Python enumerate() function.

To learn more about the Python IndexError , check out the official documentation here .

Nik Piepenbreier

Nik is the author of datagy.io and has over a decade of experience working with data analytics, data science, and Python. He specializes in teaching developers how to use Python for data science using hands-on tutorials. View Author posts

1 thought on “Python IndexError: List Index Out of Range Error Explained”

' src=

from django.contrib import messages from django.shortcuts import render, redirect

from home.forms import RewardModeLForm from item.models import Item from person.models import Person from .models import Reward, YoutubeVideo # Create your views here.

def home(request): my_reward = Reward.objects.all()[:1] # First Div last_person_post = Person.objects.all()[:1] last_item_post = Item.objects.all()[:1] # 2nd Div lost_person = Person.objects.filter(person=”L”).all()[:1] lost_item = Item.objects.filter(category=”L”).all()[:2] # End 2 div

home_found = Person.objects.all()[:3] home_item = Item.objects.all()[:3] videos = YoutubeVideo.objects.all()[:3] context = { ‘my_reward’: my_reward, ‘lost_person’: lost_person, ‘lost_item’: lost_item, ‘home_found’: home_found, ‘home_item’: home_item, ‘videos’: videos, } if last_person_post[0].update > last_item_post[0].update: context[‘last_post’] = last_person_post else: context[‘last_post’] = last_item_post

return render(request, ‘home/home.html’, context)

# Reward Function

def reward(request): if request.method == ‘POST’: form = RewardModeLForm(request.POST or None) if form.is_valid(): instance = form.save(commit=False) instance.user = request.user instance.save() messages.add_message(request, messages.SUCCESS, ‘Reward Updated .’) return redirect(‘home’) else: form = RewardModeLForm() context = { ‘form’: form, } return render(request, ‘home/reward.html’, context) index out of rage

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Save my name, email, and website in this browser for the next time I comment.

FEATURES

  • Documentation
  • System Status

Resources

  • Rollbar Academy

Events

  • Software Development
  • Engineering Management
  • Platform/Ops
  • Customer Support
  • Software Agency

Use Cases

  • Low-Risk Release
  • Production Code Quality
  • DevOps Bridge
  • Effective Testing & QA

How to Fix IndexError: List Index Out of Range in Python

How to Fix IndexError: List Index Out of Range in Python

Table of Contents

The IndexError: list index out of range error occurs in Python when an item from a list is attempted to be accessed that is outside the index range of the list. The range of a list in Python is [0, n-1], where n is the number of elements in the list.

Python IndexError Example

IndexError: list index out of range example illustration

Here’s an example of a Python IndexError: list index out of range thrown when trying to access an out of range list item:

In the above example, since the list test_list contains 4 elements, its last index is 3. Trying to access an element an index 4 throws an IndexError: list index out of range :

How to Fix IndexError in Python

The Python IndexError: list index out of range can be fixed by making sure any elements accessed in a list are within the index range of the list. This can be done by using the range() function along with the len() function.

The range() function returns a sequence of numbers starting from 0 ending at the integer passed as a parameter. The len() function returns the length of the parameter passed. Using these two methods together allows for safe iteration over the list up to its final element, thus ensuring that you stay within the valid index range and preventing the IndexError.

Here's how to use this approach to fix the error in the earlier example:

The above code runs successfully and produces the correct output as expected:

Track, Analyze and Manage Errors With Rollbar

Managing errors and exceptions in your code is challenging. It can make deploying production code an unnerving experience. Being able to track, analyze, and manage errors in real-time can help you to proceed with more confidence. Rollbar automates error monitoring and triaging, making fixing Python errors easier than ever. Install the Python SDK to identify and fix exceptions today!

Related Resources

How to catch multiple exceptions in Python

How to Catch Multiple Exceptions in Python

How to handle the psycopg2 UniqueViolation Error in Python

How to Handle the Psycopg2 UniqueViolation Error in Python

How to fix the Memory Error in Python

How to Handle the MemoryError in Python

"Rollbar allows us to go from alerting to impact analysis and resolution in a matter of minutes. Without it we would be flying blind."

Error Monitoring

Start continuously improving your code today.

  • Python Basics
  • Interview Questions
  • Python Quiz
  • Popular Packages
  • Python Projects
  • Practice Python
  • AI With Python
  • Learn Python3
  • Python Automation
  • Python Web Dev
  • DSA with Python
  • Python OOPs
  • Dictionaries
  • Python List Index Out of Range - How to Fix IndexError
  • Python Indexerror: list assignment index out of range Solution
  • How to Fix – Indexerror: Single Positional Indexer Is Out-Of-Bounds
  • IndexError: pop from Empty List in Python
  • Creating a list of range of dates in Python
  • How to fix "'list' object is not callable" in Python
  • Python | Assign range of elements to List
  • Split a Python List into Sub-Lists Based on Index Ranges
  • How to Access Index in Python's for Loop
  • How to iterate through a nested List in Python?
  • How to Find the Index for a Given Item in a Python List
  • range() to a list in Python
  • How to Replace Values in a List in Python?
  • Python - Product of elements using Index list
  • Internal working of list in Python
  • Python | Ways to find indices of value in list
  • How we can iterate through list of tuples in Python
  • Python Program to get indices of sign change in a list
  • How to Remove an Item from the List in Python
  • Python | Numbers in a list within a given range

Python List Index Out of Range – How to Fix IndexError

In Python, the IndexError is a common exception that occurs when trying to access an element in a list, tuple, or any other sequence using an index that is outside the valid range of indices for that sequence. List Index Out of Range Occur in Python when an item from a list is tried to be accessed that is outside the range of the list. Before we proceed to fix the error, let’s discuss how indexing work in Python .

What Causes an IndexError in Python

  • Accessing Non-Existent Index: When you attempt to access an index of a sequence (such as a list or a string) that is out of range, an Indexerror is raised. Sequences in Python are zero-indexed, which means that the first element’s index is 0, the second element’s index is 1, and so on.
  • Empty List: If you try to access an element from an empty list, an Indexerror will be raised since there are no elements in the list to access.

Example: Here our list is 3 and we are printing with size 4 so in this case, it will create a list index out of range.

Similarly, we can also get an Indexerror when using negative indices.

How to Fix IndexError in Python

  • Check List Length: It’s important to check if an index is within the valid range of a list before accessing an element. To do so, you can use the function to determine the length of the list and make sure the index falls within the range of 0 to length-1.
  • Use Conditional Statements: To handle potential errors, conditional statements like “if” or “else” blocks can be used. For example, an “if” statement can be used to verify if the index is valid before accessing the element. if or try-except blocks to handle the potential IndexError . For instance, you can use a if statement to check if the index is valid before accessing the element.

How to Fix List Index Out of Range in Python

Let’s see some examples that showed how we may solve the error.

  • Using Python range()
  • Using Python Index()
  • Using Try Except Block

Python Fix List Index Out of Range using Range()

The range is used to give a specific range, and the Python range() function returns the sequence of the given number between the given range.

Python Fix List Index Out of Range u sing Index()

Here we are going to create a list and then try to iterate the list using the constant values in for loops.

Reason for the error –  The length of the list is 5 and if we are an iterating list on 6 then it will generate the error.

Solving this error without using Python len() or constant Value: To solve this error we will take the index of the last value of the list and then add one then it will become the exact value of length.

Python Fix List Index Out of Range using Try Except Block

If we expect that an index might be out of range, we can use a try-except block to handle the error gracefully.

Please Login to comment...

Similar reads.

  • Python How-to-fix
  • python-list

Improve your Coding Skills with Practice

 alt=

What kind of Experience do you want to share?

List index out of range, why?

If this template helps, then use it. If not, then just delete and start from scratch.

image

And here is the error message: Traceback (most recent call last): File “/Users/athenahuang/Downloads/CIS Experiment/CIS_3_lastrun.py”, line 366, in trialList=data.importConditions(’…/…/…/…/Users/athenahuang/Downloads/CIS Experiment/image_stimuli.xlsx’, selection=‘0:7’), File “/Applications/PsychoPy.app/Contents/Resources/lib/python3.6/psychopy/data/utils.py”, line 417, in importConditions fieldName = fieldNames[colN] IndexError: list index out of range

I think PsychoPy keeps running the lastrun.py file to “run my experiment,” even when I have edited it and clicked save. This is pretty annoying. Is there any way to update the last run as soon as I edit something in my GUI?

Thank you very much! Include pasted full error message if possible. “That didn’t work” is not enough information.

On the fact that it runs your lastrun.py , it is because you do not compile the script by just saving. Every time you make changes, you must send experiment to Runner (green arrow with grey box) or run experiment directly (green arrow).

Reattach your conditions file so it is being opened from the correct folder. You shouldn’t have …/ in the path.

This can also happen if any column of your condition file sheet has data in it, but doesn´t have a name.

Related Topics

COMMENTS

  1. python

    This just looks like it's a bug with openpyxl. (I've opened a issue request here) You can workaround it with the following monkey patch. Just put it into your startup code somewhere. def monkey_patch_openpyxl(): '''Openpyxl has a bug with workbooks that have wrong cell styling information.

  2. BUG: read_excel fails with IndexError: list index out of range

    File "miniconda3\envs\pandas\lib\site-packages\pandas\io\excel_openpyxl.py", line 498, in get_sheet_by_index return self.book.worksheets[index] IndexError: list index out of range

  3. How to fix IndexError: list assignment index out of range in Python

    As you can see, now the 'bird' value is added to the list successfully. Adding the value using the append() method increases the list index range, which enables you to modify the item at the new index using the list assignment syntax.. To summarize, use the append() method when you're adding a new element and increasing the size of the list, and use the list assignment index when you ...

  4. IndexError: list assignment index out of range in Python

    # (CSV) IndexError: list index out of range in Python. The Python CSV "IndexError: list index out of range" occurs when we try to access a list at an index out of range, e.g. an empty row in a CSV file. To solve the error, check if the row isn't empty before accessing it at an index, or check if the index exists in the list.

  5. Error in openpyxl

    This only affects certain files, but does seem to keep recurring. Sentry Issue: COVE-E5 IndexError: list index out of range (8 additional frame(s) were not displayed) ... File "openpyxl/descriptors...

  6. How to Fix "IndexError: List Assignment Index Out of Range ...

    How to use the insert() method. Use the insert() method to insert elements at a specific position instead of direct assignment to avoid out-of-range assignments. Example: my_list = [ 10, 20, 30 ] my_list.insert( 3, 987) #Inserting element at index 3 print (my_list) Output: [10, 20, 30, 987] Now one big advantage of using insert() is even if you ...

  7. List Index Out of Range

    freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization (United States Federal Tax Identification Number: 82-0779546) Our mission: to help people learn to code for free.

  8. IndexError: list index out of range when using load_workbook

    The exception is coming from the defined names and I think this is due to the combination of chartsheets abdand the weird indexing that Excel uses in the workbook part: there are 8 worksheets but 20 or child objects in total, so the index 19 probably refers to the last item, which is probably "New Monthly Metals", which itself has been handily ...

  9. Python indexerror: list assignment index out of range Solution

    An index is a value inside an iterable object, such as a list or a string. The message "list assignment index out of range" tells us that we are trying to assign an item to an index that does not exist. In order to use indexing on a list, you need to initialize the list.

  10. openpyxl.load_workbook throws IndexError: list index out of range

    File "D:\WinPrograms\Python3\lib\site-packages\openpyxl\reader\excel.py", line 312, in load_workbook reader.read() ... IndexError: list index out of range Attachments: Orbis_Export_201.xlsx. Edited Mar 17, 2022 by CharlieC. To upload designs, you'll need to enable LFS and have an admin enable hashed storage.

  11. How to Fix the "List index out of range" Error in Python

    >>> print(x[6]) IndexError: list index out of range This is equivalent to print(x[len(x)]). ... After every iteration of our while loop, we print the list element and then go to the next index with the += assignment operator. (This is a neat little trick, which is like doing i=i+1.) By the way, if you forget the final line, you'll get an ...

  12. openpyxl.worksheet.cell_range module

    Represents a range in a sheet: title and coordinates. This object is used to perform operations on ranges, like: shift, expand or shrink. union/intersection with another sheet range, We can check whether a range is: equal or not equal to another, disjoint of another, contained in another. We can get:

  13. Python IndexError: List Index Out of Range Error Explained

    IndexError: list index out of range. We can break down the text a little bit. We can see here that the message tells us that the index is out of range. This means that we are trying to access an index item in a Python list that is out of range, meaning that an item doesn't have an index position.

  14. How to Fix IndexError: List Index Out of Range in Python

    The Python IndexError: list index out of range can be fixed by making sure any elements accessed in a list are within the index range of the list. This can be done by using the range() function along with the len() function. The range() function returns a sequence of numbers starting from 0 ending at the integer passed as a parameter.

  15. Python Indexerror: list assignment index out of range Solution

    Python Indexerror: list assignment index out of range Solution. Method 1: Using insert () function. The insert (index, element) function takes two arguments, index and element, and adds a new element at the specified index. Let's see how you can add Mango to the list of fruits on index 1. Python3. fruits = ['Apple', 'Banana', 'Guava']

  16. openpyxl after load and save list index out of range(python)

    Thanks for contributing an answer to Stack Overflow! Please be sure to answer the question.Provide details and share your research! But avoid …. Asking for help, clarification, or responding to other answers.

  17. Python List Index Out of Range

    Output. blue,red,green Python Fix List Index Out of Range u sing Index(). Here we are going to create a list and then try to iterate the list using the constant values in for loops.

  18. python : IndexError: list assignment index out of range

    2. Your problem is that del l[min(l)] is trying to reference the list item at index min(l). Let's assume that your list has 3 items in it: l = [22,31,17] Trying to delete the item at the index min(l) is referencing the index 17, which doesn't exist. Only indices 0, 1, and 2 exist. I think what you want to do is remove the smallest item from ...

  19. List index out of range, why?

    On the fact that it runs your lastrun.py, it is because you do not compile the script by just saving. Every time you make changes, you must send experiment to Runner (green arrow with grey box) or run experiment directly (green arrow). wakecarter June 7, 2021, 9:22pm 4. Reattach your conditions file so it is being opened from the correct folder.