Skip to main content

Python List insert() Function

The List insert() method inserts a single element at a specified index in a list.

Syntax​

my_list.insert(index, element)

insert() Parameters​

Python List insert() method parameters::

ParameterConditionDescription
indexRequiredThe index at which the element should be inserted.
elementRequiredThe element to be inserted into the list.

insert() Return Value​

Python List insert() function does not return a value: it modifies the original list.

note

The element is inserted to the list at the index-th index. All the elements after elem are shifted to the right.

Examples​

Example 1: Insert an Element in a List with insert()​

The insert() method adds an element in a specified position.

For example, let's add the string 'Anna' at index 1 in the names list:

names = ['Tom', 'David', 'Ryan']
names.insert(1, 'Anna')

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

output

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

Example 2: Insert an Element with Negative Index​

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

For example, let's add the string 'Anna' at index -1 in the names list:

names = ['Tom', 'David', 'Ryan']
names.insert(-1, 'Anna')

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

output

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

Example 3: Insert an Element with Index greater than list length​

When you specify an index greater than list length, you do not get any exception. Instead, the item is inserted at the end of the list.

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

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

output

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

Example 4: Insert an Element at the Beginning in a List​

Just specify 0 as index of the insert() method.

names = ['Tom', 'David', 'Ryan']
names.insert(0, 'Anna')

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

output

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

insert() method vs append() method​

Inserting item at the end of the list with insert() method is equivalent to append() method.

names = ['Tom', 'David', 'Ryan']
names.insert(len(names),'Anna') # insert at the end
print(names) # Output: ['Tom', 'David', 'Ryan', 'Anna']

# is equivalent to
names = ['Tom', 'David', 'Ryan']
names.append('Anna') # insert at the end
print(names) # Output: ['Tom', 'David', 'Ryan', 'Anna']

output

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

insert() method vs extend() method​

The insert() method consider its argument as a single object.

names = ['Tom', 'David']
names.insert(2,'Anna')
print(names) # Output: ['Tom', 'David', 'Anna']

output

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

If you want to add every item of an iterable to a list, you have to use extend() method.

names = ['Tom', 'David']
names.extend('Anna')
print(names) # Output: ['Tom', 'David', 'A', 'n', 'n', 'a']

output

['Tom', 'David', 'A', 'n', 'n', 'a']