python - 如何像使用嵌套 for 循环一样迭代任意数量的列表?

标签 python algorithm

假设我有以下列表,如何实现:

列表1 列表2 列表3

1 1 1

2 2 2

3 3 3

。 。 .

。 。 .

我想要迭代的行为如下:

1,1,1

1,1,2

1,1,3

1,2,1

1,2,2

1,2,3

1,3,1

1,3,2

1,3,3

2,1,1

.

.

.

这是三个列表会发生什么的演示,但在我的实际用例中,我事先不知道列表的数量。

最佳答案

how about when we don't know the number of lists in advance?

在这种情况下,您可以使用 itertools.product,假设您有一个容器 lists 来保存任意数量的列表。

演示:

>>> from itertools import product
>>> 
>>> lists = [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
>>> for value in product(*lists):
...     print(value)
... 
(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 2, 1)
(1, 2, 2)
(1, 2, 3)
(1, 3, 1)
(1, 3, 2)
(1, 3, 3)
(2, 1, 1)
(2, 1, 2)
(2, 1, 3)
(2, 2, 1)
(2, 2, 2)
(2, 2, 3)
(2, 3, 1)
(2, 3, 2)
(2, 3, 3)
(3, 1, 1)
(3, 1, 2)
(3, 1, 3)
(3, 2, 1)
(3, 2, 2)
(3, 2, 3)
(3, 3, 1)
(3, 3, 2)
(3, 3, 3)

关于python - 如何像使用嵌套 for 循环一样迭代任意数量的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52572169/

相关文章:

python - 如何从 CSV 文件中获取输入并使用 Python 编写特定输出?

python - 在python中向列表中插入一个元素

python - 在 Python 桌面应用程序中的何处存储用户凭据?

python - 使用 Python 将文件复制到路径

Java 递归参数值

java - 如何确定何时移除网格上的一个点会创建 2 个不同的未连接区域

python - Flask-OAuthlib 从 token 处理程序获取 access_token

algorithm - 检查两个字符串是否是字谜

c# - 将二维数组解析为矩形

c# - 产品搜索算法最佳实践