Q: Why will
l return an
A: Because index values in Python (as in many other languages) are zero-based. That means the first item is stored at index
l = [1,2,3,4,5,6,7,8,9,0]
has 10 items. Since the index starts at
0, the last item will be at index
9. When you try to access your list at index
10, Python rightly throws an
IndexError exception to tell you that this is not a valid index value and is out of bounds.
Python also uses the convention of negative index values to access items from the "end" of a list or sequence. Index value
-1 indicates the last item in the list,
-2 the next-to-last etc. Since the last item in your list is
0, this is what
@Lattyware's answer already shows you how to generate/throw an exception, I hope this answers your initial question.