 GFG App
Open App Browser
Continue

# Python | Concatenate two lists element-wise

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)

My Personal Notes arrow_drop_up