在Python中,是否存在嵌套范围的循环形式?

在为大学实现矩阵乘法时,我最终仅使用范围就得到了3次嵌套的for循环。 我个人不喜欢嵌套,并问自己Python中是否有某些东西可以“简化”这种特殊情况的语法。

我在互联网上查了一下,但不幸的是我找不到任何东西。

我得到的代码看起来像这样:

for i in range(a):
    for j in range(b):
        for k in range(c):
            # some stuff

随着Python能够返回多个值,我认为应该有一些迭代器使用N个嵌套范围的for循环返回N个索引,例如:

# this should do the exact same thing like the above example
for i,j,k in nrange((a),(b),(c)):
    # some stuff

nrange的每个参数都是一个参数元组,然后使用*运算符传递给range。因此nrange((a1,a2,a3),(b1,b2,b3))也应该是可能的。 我的问题是,是否存在?为什么?

先谢谢您。 :)

chen22di 回答:在Python中,是否存在嵌套范围的循环形式?

是的,有itertools.product

from itertools import product
for i,j,k in product(range(3),range(3),range(3)):
    print(i,k)

输出:

0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
1 1 1
1 1 2
1 2 0
1 2 1
1 2 2
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 1 2
2 2 0
2 2 1
2 2 2
本文链接:https://www.f2er.com/3152981.html

大家都在问