好的,我有两个列表,如下:
- 它们可以且会有重叠的项,例如,
[1, 2, 3, 4, 5]
,[4, 5, 6, 7]
。 - 重叠部分不会有额外的项目,例如,这种情况不会发生:
[1, 2, 3, 4, 5]
,[3.5, 4, 5, 6, 7]
- 这些列表不一定是有序或唯一的。
[9, 1, 1, 8, 7]
,[8, 6, 7]
。
我想要合并这些列表,以保留现有的顺序,并在最后可能有效的位置上进行合并,以确保不会丢失任何数据。此外,第一个列表可能非常庞大。我的当前工作代码如下:
master = [1,3,9,8,3,4,5]
addition = [3,4,5,7,8]
def merge(master, addition):
n = 1
while n < len(master):
if master[-n:] == addition[:n]:
return master + addition[n:]
n += 1
return master + addition
我想知道的是是否有更有效的方法来做这件事?它可以工作,但我对此有些担心,因为在我的应用程序中它可能会遇到长时间运行 - 我正在合并大量字符串列表。编辑:我期望[1,3,9,8,3,4,5],[3,4,5,7,8]的合并结果是:[1,3,9,8,3,4,5,7,8]。 为了清晰起见,我已经突出了重叠部分。
[9,1,1,8,7],[8,6,7]应该合并为[9,1,1,8,7,8,6,7]。