from itertools import chainx = [1, 2, 3, 4]y = ['x', 'y', 'z']for x in chain(x, y):print(x)
>>> 1234xyz
使用 + 合并两个列表时, 会在内存中生成一个新列表, 当列表非常大时, 内存有一定开销, 并且 + 无法合并不同类型的容器, 使用 chain 很好的解决了这两点.
>>> import heapq>>> a = [1, 4, 7, 10]>>> b = [2, 5, 6, 11]>>> for c in heapq.merge(a, b):... print(c)...1245671011
heapq.merge() 会将列表进行排序, 并不会立即读取列表.
