Let’s say that you have a Python list with the following 5 foods:
foods = ["pizza", "pasta", "steak", "chicken", "olives"]
How do we go about getting the last item?
Option 1
It’s actually really easy, you can select the index item by it’s total length minus one.
last_item = foods[len(foods)-1]
# "olives"
Option 2
Python has some really fantastic functionality around making your life easier. One of those such things is the ability to use slices
.
You can return an item by it’s index if you know this, or you can return it’s value from the place within a list.
last_item = foods[-1]
# "olives
By stipulating an index of -1
, we tell Python to return the last item; we can also return the second last item by using the index -2
.
Additional safety checking
As with option2
above, this is a nice and simple way to achieve our objective, but what if the str()
or list()
object is empty?
List example
alist = []
# Generates an IndexError exception
alist[-1]
# Return an empty list
alist[-1:]
String example
astr = ''
# Generate an IndexError exception
astr[-1]
# Return an empty string
astr[-1:]