python合并两个有序列表(list)
Posted Data+Science+Insight
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python合并两个有序列表(list)相关的知识,希望对你有一定的参考价值。
python合并两个有序列表(list)
原来的列表是有序的合并之后的列表也要是有序的。
很多时候,我们会遇到一个问题,我们希望使用归并排序的归并函数,这是一个经典问题,在竞争性编程中经常出现。这种类型的问题,当知道更短和紧凑的方法来执行它们总是相当方便。
python中的heapq模块的merge方法可以实现有序列表的合并:
heapq.merge()要求所有的输入序列都是有序的,它只是简单地检查每个输入序列中的第一个元素,将最小的那个发送出去,然后重复执行这个步骤,直到所有的输入序列都耗尽为止。
方法一:循环算法
定义一个新的空列表、比较两个列表的首个元素、小的就插入到新列表里、把已经插入新列表的元素从旧列表删除、直到两个旧列表有一个为空、再把旧列表加到新列表后面
def loop_merge_sort(l1, l2):
tmp = []
while len(l1) > 0 and len(l2) > 0:
if l1[0] < l2[0]:
tmp.append(l1[0])
del l1[0]
else:
tmp.append(l2[0])
del l2[0]
tmp.extend(l1)
tmp.extend(l2)
return tmp
#
a = [1,3
以上是关于python合并两个有序列表(list)的主要内容,如果未能解决你的问题,请参考以下文章