Problem: Given a list. How to access the last element of this list?
Example: You have the list ['Alice', 'Bob', 'Liz']
and you want to get the last element 'Liz'
.
Quick solution: Use negative indexing -1.
friends = ['Alice', 'Bob', 'Liz'] print(friends[-1]) # Liz
To access the last element of a Python list, use the indexing notation list[-1]
with negative index -1
which points to the last list element. To access the second-, third-, and fourth-last elements, use the indices -2
, -3
, and -4
. To access the n
last elements of a list, use slicing list[:-n-1:-1]
with negative stop index -n
and negative step size -1
.
Method 1: Access the Last Element with Negative Indexing -1
To bring everybody on the same page, let me quickly explain indices in Python by example. Suppose, you have list ['u', 'n', 'i', 'v', 'e', 'r', 's', 'e']
. The indices are simply the positions of the characters of this string.
(Positive) Index | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Element | ‘u’ | ‘n’ | ‘i’ | ‘v’ | ‘e’ | ‘r’ | ‘s’ | ‘e’ |
Negative Index | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
Positive Index: The first character has index 0
, the second character has index 1
, and the i
-th character has index i-1
.
Negative Index: The last character has index -1
, the second last character has index -2
, and the i
-th last character has index -i
.
Now, you can understand how to access the last element of the list:
friends = ['Alice', 'Bob', 'Liz'] print(friends[-1]) # Liz
But how to access the second-last element? Just use index -2!
friends = ['Alice', 'Bob', 'Liz'] print(friends[-2]) # Bob
Method 2: Access the n Last Elements with Slicing
But what if you want to access the n
last elements? The answer is slicing.
The default slicing operation list[start:stop:step]
accesses all elements between start
(included) and stop
(excluded) indices, using the given step
size over the list. For example, the slicing operation friends[0:3:2]
would start with the first element 'Alice'
and end with the third element 'Liz'
(included), but taking only every second element due to the step size of 2
—effectively skipping the second element 'Bob'
.
You can use slicing with negative start
and stop
indices and with negative stop size to slice from the right to the left. To access the n
last elements in the slice, you’d therefore use the following code:
universe = ['u', 'n', 'i', 'v', 'e', 'r', 's', 'e'] # Access the n=4 last element from the list: n = 4 print(universe[:-n-1:-1]) # ['e', 's', 'r', 'e']
There are different points to consider in the code:
- You use a negative step size -1 which means that you slice from the right to the left.
- If you don’t provide a value for
start
,stop
, orstep
indices, Python takes the default ones. For example, we don’t provide thestart
index and perform negative slicing so Python starts from the last element'e'
. - You want to get the
n
last elements. Then
-th last element has index-n
. But as the stop index is never included in the slice, we need to slice one step further to the left—to the element with index-n-1
to include the element with index-n
.
Try this yourself in our interactive code shell:
Exercise: What happens if the list has less than n characters?
Where to Go From Here?
Enough theory. Let’s get some practice!
Coders get paid six figures and more because they can solve problems more effectively using machine intelligence and automation.
To become more successful in coding, solve more real problems for real people. That’s how you polish the skills you really need in practice. After all, what’s the use of learning theory that nobody ever needs?
You build high-value coding skills by working on practical coding projects!
Do you want to stop learning with toy projects and focus on practical code projects that earn you money and solve real problems for people?
🚀 If your answer is YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.
If you just want to learn about the freelancing opportunity, feel free to watch my free webinar “How to Build Your High-Income Skill Python” and learn how I grew my coding business online and how you can, too—from the comfort of your own home.