Sometimes, while working with Python list, we have a problem in which we need to add a complete list to another. The rear end addition to list has been discussed before. But sometimes, we need to perform an append at beginning of list. Let's discuss certain ways in which this task can be performed.
Method #1 : Using "+" operator The "+" operator can be used to perform this particular task. In this, we just perform the addition of one list before other and construct a new list or perform the addition to same list.
# Python3 code to demonstrate working of
# Adding list at beginning of list
# initialize list
test_list = [1, 4, 5, 7, 6]
# initialize add list
add_list = [3, 4, 2, 10]
# printing original list
print("The original list is : " + str(test_list))
# printing add list
print("The add list is : " + str(add_list))
# Adding list at beginning of list
test_list = add_list + test_list
# printing result
print("The original updated list is : " + str(test_list))
Output
The original list is : [1, 4, 5, 7, 6] The add list is : [3, 4, 2, 10] The original updated list is : [3, 4, 2, 10, 1, 4, 5, 7, 6]
Time Complexity: O(n), where n is the length of the list test_list
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the add_list
Method #2 : Using deque.extendleft() + reversed() This task can also be performed using combination of above methods. In this, we just convert the list into a dequeue, to allow a front append, and then one by one addition is done by extendleft(), the add list is reversed so that addition take place in correct order using reversed().
# Python3 code to demonstrate working of
# Adding list at beginning of list
# using deque.extendleft() + reversed()
from collections import deque
# initialize list
test_list = [1, 4, 5, 7, 6]
# initialize add list
add_list = [3, 4, 2, 10]
# printing original list
print("The original list is : " + str(test_list))
# printing add list
print("The add list is : " + str(add_list))
# Adding list at beginning of list
# using deque.extendleft() + reversed()
res = deque(test_list)
res.extendleft(reversed(add_list))
# printing result
print("The original updated list is : " + str(list(res)))
Output
The original list is : [1, 4, 5, 7, 6] The add list is : [3, 4, 2, 10] The original updated list is : [3, 4, 2, 10, 1, 4, 5, 7, 6]
Time Complexity: O(n*n), where n is the length of the list test_list
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res list
Method #3 : Using extend() method
# Python3 code to demonstrate working of
# Adding list at beginning of list
# using "+" operator
# initialize list
test_list = [1, 4, 5, 7, 6]
# initialize add list
add_list = [3, 4, 2, 10]
# printing original list
print("The original list is : " + str(test_list))
# printing add list
print("The add list is : " + str(add_list))
add_list.extend(test_list)
test_list=add_list
# printing result
print("The original updated list is : " + str(test_list))
Output
The original list is : [1, 4, 5, 7, 6] The add list is : [3, 4, 2, 10] The original updated list is : [3, 4, 2, 10, 1, 4, 5, 7, 6]
Time Complexity: O(n*n), where n is the length of the list test_list
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the list
Method #4 : Using append() method
Approach
- Initiate a for loop to traverse test_list
- Append each element to add_list
- Display add_list
# Python3 code to demonstrate working of
# Adding list at beginning of list
# using "+" operator
# initialize list
test_list = [1, 4, 5, 7, 6]
# initialize add list
add_list = [3, 4, 2, 10]
# printing original list
print("The original list is : " + str(test_list))
# printing add list
print("The add list is : " + str(add_list))
for i in test_list:
add_list.append(i)
# printing result
print("The original updated list is : " + str(add_list))
Output
The original list is : [1, 4, 5, 7, 6] The add list is : [3, 4, 2, 10] The original updated list is : [3, 4, 2, 10, 1, 4, 5, 7, 6]
Method #5 : Using insert() method
Approach
- Initiate a for loop to traverse test_list
- Insert each element to add_list using index
- Display add_list
# Python3 code to demonstrate working of
# Adding list at beginning of list
# using insert
# initialize list
test_list = [1, 4, 5, 7, 6]
# initialize add list
add_list = [3, 4, 2, 10]
# printing original list
print("The original list is : " + str(test_list))
# printing add list
print("The add list is : " + str(add_list))
for i,j in enumerate(test_list):
add_list.insert(i,j)
# printing result
print("The original updated list is : " + str(add_list))
Output
The original list is : [1, 4, 5, 7, 6] The add list is : [3, 4, 2, 10] The original updated list is : [1, 4, 5, 7, 6, 3, 4, 2, 10]
Time Complexity: O(N) N length of the list
Auxiliary Space: O(M) M length of add_list