python合并两个有序列表(list)

Posted Data+Science+Insight

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python合并两个有序列表(list)相关的知识,希望对你有一定的参考价值。

python合并两个有序列表(list)

 

原来的列表是有序的合并之后的列表也要是有序的。

很多时候,我们会遇到一个问题,我们希望使用归并排序的归并函数,这是一个经典问题,在竞争性编程中经常出现。这种类型的问题,当知道更短和紧凑的方法来执行它们总是相当方便。

python中的heapq模块的merge方法可以实现有序列表的合并:

heapq.merge()要求所有的输入序列都是有序的,它只是简单地检查每个输入序列中的第一个元素,将最小的那个发送出去,然后重复执行这个步骤,直到所有的输入序列都耗尽为止。

See the source image

 

方法一:循环算法

定义一个新的空列表、比较两个列表的首个元素、小的就插入到新列表里、把已经插入新列表的元素从旧列表删除、直到两个旧列表有一个为空、再把旧列表加到新列表后面

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)的主要内容,如果未能解决你的问题,请参考以下文章

python如何合并两个列表?

python实现合并两个有序列表

python两个列表进行合并

python语句中合并两个列表并且将列表中的数安大小排列

python语句中合并两个列表并且将列表中的数安大小排列

python list练习题