Search code examples
pythonlistindex-error

Does "IndexError: list index out of range" when trying to access the N'th item mean that my list has less than N items?


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?


Solution

  • 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:

    IndexError

    The IndexError is raised when you attempt to retrieve an index from a sequence, like a list or a tuple, 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 IndexError doesn’t give you great information. You can see that you have a sequence reference that is out of range and what the type of the sequence is, a list in this case. That information, combined with the rest of the traceback, is usually enough to help you quickly identify how to fix the issue.