How do you insert an object at a specified index in a list?

Inserting an element in list at specific index using list.insert()

In python list provides a member function insert() i.e.

list.insert(position, element)
It accepts a position and an element and inserts the element at given position in the list.

Let’s see an example,

Suppose we have a list of strings i.e.

# List of string list1 = ['Hi' , 'hello', 'at', 'this', 'there', 'from']
Now let insert ‘why’ at 3rd position in the list i.e.
# Add an element at 3rd position in the list list1.insert(3, 'why')
Index will start from 0 in list. So, element will be inserted at 3rd position i.e. after 0,1 & 2.
Advertisements

So, list contents will be now,

['Hi', 'hello', 'at', 'why', 'this', 'there', 'from']

Most performance efficient approach

You may also insert the element using the slice indexing in the list. For example:

>>> a = [1, 2, 4] >>> insert_at = 2 # Index at which you want to insert item >>> b = a[:] # Created copy of list "a" as "b". # Skip this step if you are ok with modifying the original list >>> b[insert_at:insert_at] = [3] # Insert "3" within "b" >>> b [1, 2, 3, 4]

For inserting multiple elements together at a given index, all you need to do is to use a list of multiple elements that you want to insert. For example:

>>> a = [1, 2, 4] >>> insert_at = 2 # Index starting from which multiple elements will be inserted # List of elements that you want to insert together at "index_at" (above) position >>> insert_elements = [3, 5, 6] >>> a[insert_at:insert_at] = insert_elements >>> a # [3, 5, 6] are inserted together in `a` starting at index "2" [1, 2, 3, 5, 6, 4]

To know more about slice indexing, you can refer: Understanding slice notation.

Note: In Python 3.x, difference of performance between slice indexing and list.index(...) is significantly reduced and both are almost equivalent. However, in Python 2.x, this difference is quite noticeable. I have shared performance comparisons later in this answer.


Alternative using list comprehension (but very slow in terms of performance):

As an alternative, it can be achieved using list comprehension with enumerate too. (But please don't do it this way. It is just for illustration):

>>> a = [1, 2, 4] >>> insert_at = 2 >>> b = [y for i, x in enumerate(a) for y in ((3, x) if i == insert_at else (x, ))] >>> b [1, 2, 3, 4]

Python List insert()

In this tutorial, we will learn about the Python List insert() method with the help of examples.

The insert() method inserts an element to the list at the specified index.

Example

# create a list of vowels vowel = ['a', 'e', 'i', 'u']
# 'o' is inserted at index 3 (4th position) vowel.insert(3, 'o')
print('List:', vowel) # Output: List: ['a', 'e', 'i', 'o', 'u']

Python – Insert Item at Specific Index in List

To insert or add an item at specific position or index in a list, you can use insert() method of List class.

In this tutorial, we shall learn how to insert an item in a list, at given position, with the help of example Python programs.

Syntax – insert()

The syntax of insert() method is:

mylist.insert(index, item)

The items present from the specified index are shifted right and specified item is inserted at the index.

Example 1: Insert Item at Specified Index in List

In the following example, we have list of numbers. We will insert an item 36, in the list at index 4.

Python Program

mylist = [21, 5, 8, 52, 21, 87, 52] item = 36 index = 4 #insert item in mylist at index mylist.insert(index, item) print(mylist)Run

Output

[21, 5, 8, 52, 36, 21, 87, 52]

Example 2: Insert Item at Start of List

In the following example, we will insert 36, at the start of the list. To insert at start, we need to provide the index as 0 to insert() method.

Python Program

mylist = [21, 5, 8, 52, 21, 87, 52] item = 36 index = 0 #1st position #insert item in mylist at index mylist.insert(index, item) print(mylist)Run

Output

[36, 21, 5, 8, 52, 21, 87, 52]

Example 3: Insert Item at End of List

We will insert an item at end of the list. To insert item at the end, provide index, as length of the list, to insert() method.

Python Program

mylist = [21, 5, 8, 52, 21, 87, 52] item = 36 index = len(mylist) #insert item in mylist at index mylist.insert(index, item) print(mylist)Run

Output

[21, 5, 8, 52, 21, 87, 52, 36]

Example 4: Insert Item with Index out of Bounds of List

If the index provided to insert() method is more than the length of the list, it just appends the item to the list.

Here in this example, the index provided is way out of bounds and more than the length of the list.

Python Program

mylist = [21, 5, 8, 52, 21, 87, 52] item = 36 index = 1000 #index out of bounds of list #insert item in mylist at index mylist.insert(index, item) print(mylist)Run

Output

[21, 5, 8, 52, 21, 87, 52, 36]

If you provide a negative index, the item is inserted at the beginning of the list.

Python Program

mylist = [21, 5, 8, 52, 21, 87, 52] item = 36 index = -10 #index out of bounds of list #insert item in mylist at index mylist.insert(index, item) print(mylist)Run

Output

[36, 21, 5, 8, 52, 21, 87, 52]

Summary

In this tutorial of Python Examples, we learned how to insert an item at given position in the list.

  • Python Program to Find Smallest Number in List
  • Python – Check if Element is in List
  • How to Reverse Python List?
  • Python Program to Find Duplicate Items of a List
  • Python List of Dictionaries
  • Python List without Last Element
  • Python List – Add Item
  • Python List of Lists
  • Python – Get Index or Position of Item in List
  • How to Get List of all Files in Directory and Sub-directories?

Python List insert() Method


Advertisements

Previous Page
Next Page

Add an item to a list in Python (append, extend, insert)

Posted: 2019-05-29 / Modified: 2021-04-06 / Tags: Python, List
Tweet

In Python, use list methods append(), extend(), and insert() to add items (elements) to a list or combine other lists. You can also use the + operator to combine lists, or use slices to insert items at specific positions.

  • Add an item to the end: append()
  • Combine lists: extend(), + operator
  • Insert an item at specified index: insert()
  • Add another list or tuple at specified index: slice
Sponsored Link