如何优雅地循环遍历多个列表

flo*_*sla 1 python loops

说,我有两个列表ab:

a = [10, 20]
b = [40, 50]
Run Code Online (Sandbox Code Playgroud)

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

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

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

a.extend(b)
for i in a:
    print(i)
Run Code Online (Sandbox Code Playgroud)

那么我如何在Python中这么做呢?

hir*_*ist 8

你可以使用itertools的:

from itertools import chain

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

for i in chain(a, b):
    print(i)
Run Code Online (Sandbox Code Playgroud)

这不会创建新列表(如同a + b),因此如果列表很大,则更有效(内存).

这也适用于生成器和其他迭代.