How to Remove the Last N Elements of a List in Python
Removing the last N
elements of a list can be tricky at times.
Suppose I have the following list.
lst = [1, 2, 3, 4]
Remove last N
elements by slicing
Most of us know that we can use -1
to get the last element of a list. Similar, we can use the slice notation along with negative index to remove the last element.
print(lst[-1]) # 4
print(lst[:-1]) # [1, 2, 3]
print(lst) # [1, 2, 3, 4]
Note that this will create a shallow copy of the list. We can remove the last N
element of a list like so:
lst = lst[:-n]
But, this actually does not work when n == 0
because it results in this operation, which will grab nothing from the list.
print(lst[:-0]) # []
We can circumvent this by slicing with -n or None
, which will evaluate to -n
when n > 0
and None
when n == 0
.
lst = lst[:-n or None]
Remove last N
elements using del
If we don’t want to reassign the list, we can directly modify the original list with del
.
del lst[-1:]
print(lst]) # [1, 2, 3]
To remove the last N
elements in a list, we can do the following:
del lst[-n:]