IndexError: list index out of range

Example 01

my_list = ['red', 'green', 'yellow']
lucky_number = 3
if lucky_number > 0:
    print my_list[lucky_number]

Reason: The IndexError happens when an index does not have a valid value. In Python, the index of a list starts at 0 and thus valid indices for a list of length 3 are 0, 1, and 2. The variable lucky_number is 3 and my_list[lucky_number] equals my_list[3], resulting in an IndexError.

Example 02

my_list = range(3)
lucky_number = 3
if lucky_number > 0:
    print my_list[lucky_number]

Reason: The function call range(3) produces the list [0, 1, 2] and 3 is not included. Valid indices are thus 0, 1, and 2. The variable lucky_number is 3 and my_list[lucky_number] equals my_list[3], resulting in an IndexError.