如何越来越多地迭代多个迭代器?

问题描述

谁能帮我写一段代码,以便越来越多地迭代多个迭代器。 举个例子,假设我有几个列表(例如:[1,9] 和 [2,3,4]),我想从这些列表中获得一个可迭代的结果 1、2、3、4 和 9。当然这个想法是使用更大更复杂的迭代器(否则很容易合并和排序)。

谢谢!

解决方法

heapq 正是为你想要的而设计的:它创建了一个迭代器,所以你不必处理巨大的列表。这是一个简单示例的代码:

import heapq
a = [1,4,7,10]
b = [2,5,6,11]
for c in heapq.merge(a,b): 
    print(c)

当然,它只有在你的列表被排序时才有效,如果他们没有排序,你必须先对它们进行排序。