In this article we will discuss how to insert an element in list at specific position.

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.

So, list contents will be now,

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

Inserts an element at beginning of list

To insert the element at the front of above list, call insert() function i.e.

# Add an element at the front of list
list1.insert(0, 'city')

So, list contents will be now,
['city', 'Hi', 'hello', 'at', 'why', 'this', 'there', 'from']

Insert all elements of another list at specific index in given list

Suppose we have two lists i.e.

list1 = ['city', 'Hi', 'hello', 'at', 'why', 'this', 'there', 'from']

list2 = [3,5,7,1]

Now Insert all the elements of list2 at 3rd position in list1

Method 1:

Iterate over list2 in reverse and keep on inserting element at 3rd index in list1 using list.insert() i.e.

 

# Insert all the elements in list2 to list1 between 3 to 4 th element
for elem in reversed(list2) :
    list1.insert(3, elem)

Method 2:

Splice list1 from 0 to 2 and merge all elements of list2 in it. Then merge all the remaining elements of list from 3 to end i.e.

# Insert all the elements in list2 to list1 between 3 to 4 th element
list1 = list1[:3] + list2 + list1[3:]

In both cases lists content will be now,
['city', 'Hi', 'hello', 3, 5, 7, 1, 'at', 'why', 'this', 'there', 'from']

Complete example is as follows,
'''
Inserting all elements of list1 at specific index in other list
'''
def main():
    
    # List of string 
    list1 = ['Hi' ,  'hello', 'at', 'this', 'there', 'from']
    
    # Print the List
    print(list1)
    
    # Add an element at 3rd position in the list
    list1.insert(3, 'why')
    
    # Print the List
    print(list1)
    
    
    # Add an element at the front of list
    list1.insert(0, 'city')
    
    # Print the List
    print(list1)
    
    
    list2 = [3,5,7,1]
    
    # Insert all the elements in list2 to list1 between 3 to 4 th element
    for elem in reversed(list2) :
        list1.insert(3, elem)
        
    # Print the List
    print(list1)    
    
    
    # List of string 
    list1 = ['Hi' ,  'hello', 'at', 'this', 'there', 'from']
    
    # Insert all the elements in list2 to list1 between 3 to 4 th element
    list1 = list1[:3] + list2 + list1[3:]
        
    # Print the List
    print(list1)    
    
        
if __name__ == '__main__':
    main()

Output:
['Hi', 'hello', 'at', 'this', 'there', 'from']
['Hi', 'hello', 'at', 'why', 'this', 'there', 'from']
['city', 'Hi', 'hello', 'at', 'why', 'this', 'there', 'from']
['city', 'Hi', 'hello', 3, 5, 7, 1, 'at', 'why', 'this', 'there', 'from']
['Hi', 'hello', 'at', 3, 5, 7, 1, 'this', 'there', 'from']

 

Join a list of 2000+ Programmers for latest Tips & Tutorials