I'm telling my program to print out line 53 of an output. Is this error telling me that there aren't that many lines and therefore can not print it out?
I'm telling my program to print out line 53 of an output. Is this error telling me that there aren't that many lines and therefore can not print it out?
If you have a list with 53 items, the last one is thelist[52] because indexing starts at 0.
From Real Python: Understanding the Python Traceback - IndexError:
IndexErrorThe
IndexErroris raised when you attempt to retrieve an index from a sequence, like alistor atuple, and the index isn’t found in the sequence. The Python documentation defines when this exception is raised:Raised when a sequence subscript is out of range. (Source)
Here’s an example that raises the
IndexError:
test = list(range(53))
test[53]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-6-7879607f7f36> in <module>
1 test = list(range(53))
----> 2 test[53]
IndexError: list index out of range
The error message line for an
IndexErrordoesn’t give you great information. You can see that you have a sequence reference that isout of rangeand what the type of the sequence is, alistin this case. That information, combined with the rest of the traceback, is usually enough to help you quickly identify how to fix the issue.
Yes,
You are trying to access an element of the list that does not exist.
MyList = ["item1", "item2"]
print MyList[0] # Will work
print MyList[1] # Will Work
print MyList[2] # Will crash.
Have you got an off-by-one error?
That's right. 'list index out of range' most likely means you are referring to n-th element of the list, while the length of the list is smaller than n.
If you read a list from text file, you may get the last empty line as a list element. You can get rid of it like this:
list.pop()
for i in list:
i[12]=....