📜  Python|字符串列表中的选择性合并

📅  最后修改于: 2022-05-13 01:55:10.609000             🧑  作者: Mango

Python|字符串列表中的选择性合并

有时,在使用Python列表时,我们可能会遇到需要执行合并操作的问题。可以有各种修改来合并。一个这样的可以替换除特定字符。让我们看看可以执行此任务的不同方式。

方法 #1:使用列表理解 + join() + zip()
上述方法的组合可用于执行此任务。在此,我们使用 zip() 组合相似的元素,并使用 join() 执行合并操作。列表推导用于提供逻辑和迭代。

# Python3 code to demonstrate working of
# Selective Merge in String list
# using list comprehension + 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 exempt char 
exm_chr = 'g'
  
# Selective Merge in String list
# using list comprehension + 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)]
  
# printing result
print("The resultant list after Selective Merge : " + str(res))
输出 :
The original list 1 : ['abc', 'de', 'efgh']
The original list 2 : ['gfg', 'is', 'good']
The resultant list after Selective Merge : ['gbg', 'de', 'gfgh']

方法 #2:使用map() + lambda() + join() + zip()
上述功能的组合也可用于执行此任务。在此,我们使用 map() 和 join() 来执行列表理解执行的任务。其余所有任务的执行与上述方法类似。

# Python3 code to demonstrate working of
# Selective Merge in String list
# 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 exempt char 
exm_chr = 'g'
  
# Selective Merge in String list
# 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)))))
  
# printing result
print("The resultant list after Selective Merge : " + str(res))
输出 :
The original list 1 : ['abc', 'de', 'efgh']
The original list 2 : ['gfg', 'is', 'good']
The resultant list after Selective Merge : ['gbg', 'de', 'gfgh']