Open In App

Python | Concatenate two lists element-wise

Last Updated : 20 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes we come across this type of problem in which we require to leave each element of one list with the other. This type of problems usually occurs in developments in which we have the combined information, like names and surnames in different lists. Let’s discuss certain ways in which this task can be performed. 

Method #1 : Using list comprehension + zip() List comprehension does the task of concatenating the similar index elements. The task of zip function is concatenating the resultant string into a single list and return list. 

Python3




# Python3 code to demonstrate
# interlist element concatenation
# using list comprehension + zip()
 
# initializing lists 
test_list1 = ["Geeksfor", "i", "be"]
test_list2 = ['Geeks', 's', 'st']
 
# printing original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
 
# using list comprehension + zip()
# interlist element concatenation
res = [i + j for i, j in zip(test_list1, test_list2)]
 
# printing result
print ("The list after element concatenation is : " +  str(res))


Output:

The original list 1 is : ['Geeksfor', 'i', 'be']
The original list 2 is : ['Geeks', 's', 'st']
The list after element concatenation is : ['GeeksforGeeks', 'is', 'best']

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 #2 : Using map() + lambda + zip() The task of mapping each index element with each other is performed by map function in this method and the functionality of addition is performed by lambda function. This method works only in Python2. 

Python




# Python code to demonstrate
# interlist element concatenation
# using map() + lambda + zip()
 
# initializing lists 
test_list1 = ["Geeksfor", "i", "be"]
test_list2 = ['Geeks', 's', 'st']
 
# printing original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
 
# using map() + lambda + zip()
# interlist element concatenation
res = list(map(lambda(i, j): i + j, zip(test_list1, test_list2)))
 
# printing result
print ("The list after element concatenation is : " +  str(res))


Output:

The original list 1 is : ['Geeksfor', 'i', 'be']
The original list 2 is : ['Geeks', 's', 'st']
The list after element concatenation is : ['GeeksforGeeks', 'is', 'best']

Method #3 : Using reduce():

This code uses the reduce() function from the functools module to concatenate the elements of two lists list1 and list2. The zip() function is used to pair the elements of the two lists together, and the lambda function passed to reduce() combines each pair of elements using string concatenation. The reduce() function returns a single list containing the concatenated elements.

Time complexity: O(n) (To concatenate all elements in worst case)

Auxiliary space: O(n) (To store the concatenated elements in a new list)

Python3




# Initialize the lists
list1 = ["Hello", "Hi", "Good morning"]
list2 = ["world", "there", "all"]
 
# Use reduce() to concatenate the elements
from functools import reduce
result = reduce(lambda res, l: res + [l[0] + " " + l[1]], zip(list1, list2), [])
 
print(result)  # ["Hello world", "Hi there", "Good morning all"]
#This code is contributed by Edula Vinay Kumar Reddy


Output

['Hello world', 'Hi there', 'Good morning all']

Method #4: Using for loop:

Python3




test_list1 = ["Geeksfor", "i", "be"]
test_list2 = ['Geeks', 's', 'st']
# printing original lists
print ("The original list 1 is : " + str(test_list1))
print ("The original list 2 is : " + str(test_list2))
res = []
for i in range(len(test_list1)):
    res.append(test_list1[i]+test_list2[i])
print("The list after element concatenation is : " + str(res))
#This code is contributed by Jyothi pinjala.


Output

The original list 1 is : ['Geeksfor', 'i', 'be']
The original list 2 is : ['Geeks', 's', 'st']
The list after element concatenation is : ['GeeksforGeeks', 'is', 'best']

Time complexity: O(n) 
Auxiliary Space: O(n) 

Method#5:Using itertools

Python3




import itertools
 
test_list1 = ["Geeksfor", "i", "be"]
test_list2 = ['Geeks', 's', 'st']
 
# Printing original lists
print("The original list 1 is:", test_list1)
print("The original list 2 is:", test_list2)
 
result = list(map(''.join, itertools.zip_longest(test_list1, test_list2)))
 
print("The list after element concatenation is:", result)
#This code is contributed by Vinay Pinjala.


Output

The original list 1 is: ['Geeksfor', 'i', 'be']
The original list 2 is: ['Geeks', 's', 'st']
The list after element concatenation is: ['GeeksforGeeks', 'is', 'best']

Time complexity: O(n) 
Auxiliary Space: O(n) 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads