from itertools import chain
x = [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)
...
1
2
4
5
6
7
10
11
heapq.merge() 会将列表进行排序, 并不会立即读取列表.