如何使用单个3索引列表而不是3个嵌套循环进行迭代



我正在Python中进行一个项目,该项目要求我在3元素列表上进行迭代;

for i in range(0,10):
for j in range(0,10):
for k in range(0,10):
basis_nums = [i,j,k]

然后我将basis_nums向量用于其他应用程序。然而,我想按如下方式来做;

iter_list = [1,1,1]
#[2,1,1]
#[3,1,1]
#.
#.
#.
#[9,1,1]
#[1,2,1]
#.

等等。并逐个增加列表元素,直到其;

iter_list = [9,9,9]

有什么建议我该怎么做吗?

你的意思是:

from itertools import product
for basis_nums in product(range(0,10), range(0, 10), range(0, 10)):
print(basis_nums)

itertools.product会为您保存压痕深度。(注意:basis_nums现在是tuples,而不是lists(。

或者在末尾有一个额外的repeat=3

for basis_nums in itertools.product(range(10),repeat=3):
print(basis_nums)

itertools.product是将数学乘积算法嵌入到python中,itertools模块还包含组合算法,如itertools.combination,模块还包含置换算法,如itertools.permutation

最新更新