关于python:如何优雅地循环多个列表

How to elegantly loop over multiple lists

本问题已经有最佳答案,请猛点这里访问。

比如,我有两个清单:ab

1
2
a = [10, 20]
b = [40, 50]

我想一次遍历所有这些值(10, 20, 40, 50)。

简单地做两个循环并不是我想要的(重复是丑陋的)。

我也不想修改其中一个列表:

1
2
3
a.extend(b)
for i in a:
    print(i)

那么,我如何在Python中巧妙地做到这一点呢?


您可以使用来自ITertools的链:

1
2
3
4
5
6
7
from itertools import chain

a = [10, 20]
b = [40, 50]

for i in chain(a, b):
    print(i)

这不会创建一个新的列表(如a + b所做),因此,如果您的列表很大,那么它的效率会更高(内存-)。

这也适用于发电机和其他iTerables。


1
2
for i in a + b:
    print(i)

注:我是自己回答的。对这个问题感到疑惑,找到了答案,但不是通过这样,觉得应该加上去。