首页 > 解决方案 > Python:如何按顺序迭代 2 个可迭代对象(不是 zip)

问题描述

想象一下,我有 2 个任何类型的可迭代对象,例如列表和字符串:

a = [1, 2, 3]
b = "abc"

是否有一种 python 友好的简洁方式来依次迭代 a 和 b(不像 zip 那样并行)而不需要欺骗(这里的想法是 a 和 b 可以是我们只知道它们是可迭代的任何东西)

所以没有这样的事情:

for i in a + list(b):

理想情况下,我会有一些东西:

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

这相当于做

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

标签: pythonloopsfor-loop

解决方案


您正在寻找的是itertools.chainhttps ://docs.python.org/3.8/library/itertools.html#itertools.chain

你会像这样使用它:

import itertools
a = [1,2,3]
b = "abc"
for i in itertools.chain(a, b):
    print(i)

产生

1
2
3
a
b
c

推荐阅读