如何优雅地循环多个列表[重复]

Posted

技术标签:

【中文标题】如何优雅地循环多个列表[重复]【英文标题】:How to elegantly loop over multiple lists [duplicate] 【发布时间】:2015-12-05 11:28:06 【问题描述】:

说,我有两个列表ab

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

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

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

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

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

那么我如何在 Python 中优雅地做到这一点?

【问题讨论】:

这是重复的,不幸的是我一开始没有找到这个问题。必须是措辞。 concat list python 第一个谷歌链接 @Haketo 如果您有幸将“连接”视为动词。对于非英语为母语的人来说并非易事。 ***.com/questions/1720421/join-two-lists-in-python 【参考方案1】:

您可以使用来自 itertools 的chain:

from itertools import chain

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

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

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

这也适用于生成器和其他可迭代对象。

【讨论】:

【参考方案2】:
for i in a + b:
    print(i)

注意:我自己回答了这个问题。对这个问题感到疑惑,找到了答案但不是通过SO,觉得应该补充一下。

【讨论】:

***.com/questions/1720421/join-two-lists-in-python @heinst 我猜我不考虑使用术语“加入”或“连接”。 搜索添加或附加也会导致该链接

以上是关于如何优雅地循环多个列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何优雅地处理重复(并发)请求?

如何更优雅地操作不同列表中的 data.frame 对象?

如何优雅地创建可选值列表?

Python 如何优雅的删除列表中的重复元素

如何优雅地构造在 C 中遍历数组的长参数列表

如何优雅地实现环形缓冲区?