首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如何按顺序迭代2个迭代器(不是zip)

Python:如何按顺序迭代2个迭代器(不是zip)
EN

Stack Overflow用户
提问于 2020-08-21 05:44:35
回答 3查看 58关注 0票数 1

假设我有两个任意类型的迭代器,比如list和string:

代码语言:javascript
复制
a = [1, 2, 3]
b = "abc"

有没有一种python友好的简明方法来顺序地迭代a和b(不像zip那样并行),而不会欺骗(这里的想法是a和b可以是我们只知道它们是可迭代的任何东西)

所以没有像这样的东西:

代码语言:javascript
复制
for i in a + list(b):

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

代码语言:javascript
复制
for i in something(a, b):
    print(i)

这等同于做了

代码语言:javascript
复制
for i in a:
    print(i)
for i in b:
    print(i)
EN

回答 3

Stack Overflow用户

发布于 2020-08-21 05:46:22

您要查找的是itertools.chainhttps://docs.python.org/3.8/library/itertools.html#itertools.chain

您可以这样使用它:

代码语言:javascript
复制
import itertools
a = [1,2,3]
b = "abc"
for i in itertools.chain(a, b):
    print(i)

它会产生

代码语言:javascript
复制
1
2
3
a
b
c
票数 1
EN

Stack Overflow用户

发布于 2020-08-21 05:46:44

你要找的“东西”是itertools.chain

代码语言:javascript
复制
from itertools import chain

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

代码语言:javascript
复制
1
2
3
a
b
c
票数 1
EN

Stack Overflow用户

发布于 2020-08-21 05:46:24

itertools.chain()做到了这一点。当你寻找这样的东西时,你应该牢记这个库。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63513533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档