📜  Python|合并列表的重叠部分

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

Python|合并列表的重叠部分

有时,在使用Python列表时,我们可能会遇到一个问题,即我们必须合并两个列表的重叠部分。这类问题可能会出现在日常编程领域。让我们讨论一种可以解决这个问题的方法。

方法:使用生成器 + next() + 列表切片
这种方法可以用来解决这个任务。在此,首先,我们从一个列表的后端迭代一个变量,并获取第一个列表的后端切片,直到匹配第二个列表的初始切片。然后,我们使用next()获得第一个这样的重叠(最大重叠),然后我们使用列表切片加入剩余部分。

# Python3 code to demonstrate working of
# Merge overlapping parts of list
# using generator + next() + list slicing
  
# initialize lists
test_list1 = [4, 5, 7, 9, 10, 11]
test_list2 = [10, 11, 16, 17]
  
# printing original lists
print("The original list 1 is : " + str(test_list1))
print("The original list 2 is : " + str(test_list2))
  
# Merge overlapping parts of list
# using generator + next() + list slicing
temp = (i for i in range(len(test_list2), 0, -1) if test_list2[:i] == test_list1[-i:])
temp2 = next(temp, 0)
res = test_list1 + test_list2[temp2 : ]
  
# printing result
print("List after overlapping merge is : " + str(res))
输出 :
The original list 1 is : [4, 5, 7, 9, 10, 11]
The original list 2 is : [10, 11, 16, 17]
List after overlapping merge is : [4, 5, 7, 9, 10, 11, 16, 17]