Python | Selective merge in a list of strings



Method # 1: Using List Comprehension + join () + zip ()
A combination of the above methods can be used to accomplish this task. In this, we concatenate similar elements using zip (), and the join operation is performed using join (). List comprehension is used to provide logic and iteration.

# Python3 code to demonstrate how it works
# Selectively merge on a list of strings
# use a comprehension list + join () + zip ()

 
# initialize lists

test_list1 = [ "abc" , "de" , "efgh" ]

test_list2 = [ "gfg" , "is" , "good" ]

 
# printing original lists

print ( "The original list 1:" + str (test_list1))

print ( " The original list 2: " + str (test_list2))

 
# initialize freed character

exm_chr = ` g`

 
# Selective merge in a list of strings < / code>
# use comprehension list + join () + zip ()

res = [`` .join (l if l = = exm_chr else k for k, l in zip (i, j))

for i, j in zip (test_list1, test_list2)]

  
# print result

print ( "The resultant list after Selective Merge:" + str (res))

Output:

 The original list 1: [`abc`,` de`, `efgh`] The original list 2: [` gfg`, `is`,` good`] The resultant list after Selective Merge: [`gbg`, `de`,` gfgh`] 

Method # 2: Using map () + lambda () + join () + zip ()
A combination of the above functions can also be used to accomplish this task. In this we use map () and join () to accomplish the task performed by the list. The rest of the whole task is performed similarly to the above method.

# Python3 code to demonstrate how it works
# Custom merge in a list of strings
# using map () + lambda () + join () + zip ()

 
# initialize lists

test_list1 = [ "abc" , "de" , "efgh" ]

test_list2 = [ "gfg" , "is" , "good" ]

 
# printing original lists

print ( "The original list 1:" + str (test_list1))

print ( " The original list 2: " + str (test_list2))

 
# initialize freed character

exm_chr = ` g`

 
# Selective merge in the page list ok
# using map () + lambda () + join () + zip ()

temp = lambda ele:` `.join ([ i if j! = exm_chr else j for i, j in ele])

res = list ( map (temp, ( map ( lambda k: zip ( * k), zip (test_list1, test_list2)))))

 
# print result

print ( "The resultant list after Selective Merge:" + str (res))

Output:

 The original list 1: [`abc`,` de`, `efgh`] The original list 2: [` gfg`, `is`,` good`] The resultant list after Selective Merge: [`gbg`,` de`, `gfgh`]