python - 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)
解决方案
您正在寻找的是itertools.chain
:https ://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
推荐阅读
- apache-spark - Java Spark 广播并加入两个 RDD
- prestashop - Prestashop 1.7 中禁用了“添加到购物车”按钮
- excel - 电源查询和 VBA
- google-cloud-platform - Google AutoML 导入文本项目非常慢
- android - Android Studio 中的领域数据库
- google-bigquery - 从字符串中提取关键世界并将它们显示在另一列中
- azure - Azure Web App 免费 SSL 阶段
- python - 在函数中执行python变量
- php - 不正确的 else / elseif 语句|| 意外的“elseif”(T_ELSEIF)
- tabulator - 是否可以更改制表符中单个单元格的格式化程序?