heapq.merge() --合并多个有序序列,再对整个有序序列进行迭代

问题:我们有一组有序序列,想对它们合并在一起之后的有序序列进行迭代

使用heapq.merge()函数来解决这个问题
import heapq
a = [1, 3, 7, 10]
b = [2, 5, 6, 11]
for c in heapq.merge(a, b):
    print(c)
    
1
2
3
5
6
7
10
11
总结:

1、heapq.merge()的迭代性质意味着它对所有提供的序列都不会做一次性读取。这意味着可以利用它处理非常长的序列,而开销却非常小;
2、heapq.merge()要求所有的输入序列都是有序的,它只是简单地检查每个输入序列中的第一个元素,将最小的那个发送出去,然后重复执行这个步骤,直到所有的输入序列都耗尽为止。

    原文作者:cook__
    原文地址: https://www.jianshu.com/p/45a6717bf093
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞