itertools.chain() 方法可以用来简化这个任务。 它接受一个可迭代对象列表作为输入,
并返回一个迭代器,有效的屏蔽掉在多个容器中迭代细节。

>>> from itertools import chain
>>> a = [1, 2, 3, 4]
>>> b = ['x', 'y', 'z']
>>> for x in chain(a, b):
... print(x)
...
1
2
3
4
x
y
z
>>>

使用 chain() 的一个常见场景是当你想对不同的集合中所有元素执行某些操作的时候。
比如:

# Various working sets of items
active_items = set()
inactive_items = set()
# Iterate over all items
for item in chain(active_items, inactive_items):
# Process item

这种解决方案要比使用两个单独的循环更加优雅!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐