Skip to main content

Python List pop() Function

The List pop() method removes a single item of the at specified index and returns it.

note

If no index is specified, pop() method removes and returns the last item in the list.

Syntax

my_list.pop(index)

pop() Parameters

Python List pop() method parameters::

ParameterConditionDescription
indexOptionalAn index of item you want to remove. Default value is -1

pop() Return Value

Python List pop() function returns the item removed at the given index.

danger

If the index passed to the method is not in range, it throws IndexError (pop index out of range exception).

Examples

Example 1: Remove an Element at the given index from a List with pop()

The pop() method removes an element in a specified position.

names = ['Tom', 'Anna', 'David', 'Ryan']
removed = names.pop(0) # remove first element from the list

print(names) # Output: ['Anna', 'David', 'Ryan']
print(removed) # Output: Tom

output

['Anna', 'David', 'Ryan']
Tom

Example 2: Remove an Element with Negative Index

You can also use negative indexing with pop() method.

names = ['Tom', 'Anna', 'David', 'Ryan']
removed = names.pop(-3) # negative index

print(names) # Output: ['Tom', 'David', 'Ryan']
print(removed) # Output: Anna

output

['Tom', 'David', 'Ryan']
Anna

Example 3: Remove an Element without an index

When you don’t specify the index on pop(), the default value -1 is used and so it removes the last item.

names = ['Tom', 'Anna', 'David', 'Ryan']
removed = names.pop() # use default value -1

print(names) # Output: ['Tom', 'Anna', 'David']
print(removed) # Output: Ryan

output

['Tom', 'Anna', 'David']
Ryan

Example 4: Remove an Element with Index Out of Bound

If the index passed to the pop() method is not in range, it throws IndexError (pop index out of range exception).

names = ['Tom', 'Anna', 'David', 'Ryan']
removed = names.pop(10)

output

Traceback (most recent call last):
File "main.py", line 2, in <module>
removed = names.pop(10)
IndexError: pop index out of range

A possible safe solution is to check if the index to pop is inside the bounds:

my_list = [1, 2, 3, 4, 5]
index_to_pop = 5 # This index is out of range

if 0 <= index_to_pop < len(my_list):
popped_item = my_list.pop(index_to_pop)
print("Popped item:", popped_item)
else:
print("Index out of range. Can not pop from an empty list or an index that does not exist.")

print("List after attempted pop:", my_list)

output

Index out of range. Can not pop from an empty list or an index that does not exist.
List after attempted pop: [1, 2, 3, 4, 5]