python - Python 中是否有嵌套范围使用 for 循环的简写形式?

标签 python for-loop range

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

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

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

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

随着Python能够返回多个值,我认为应该有一些迭代器使用for循环返回N个嵌套范围的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))应该也是可能的。 我的问题是,这是否存在,如果不存在,为什么?

提前谢谢您。 :)

最佳答案

是的,有itertools.product

from itertools import product
for i,j,k in product(range(3),range(3),range(3)):
    print(i,j,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

关于python - Python 中是否有嵌套范围使用 for 循环的简写形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58728302/

相关文章:

Python for 循环过早停止

python - 使用 CNN、tensorflow 的 CIFAR 数据集 y_pred 的形状问题

javascript - Python zlib gzip 解压失败,字符串通过 pako 在客户端压缩

python - 如何将本地.sql文件导入pythonanywhere数据库?

c++ - 迭代元组 vector c+17 样式不起作用?

javascript - 从多级嵌套数组 JavaScript 中获取所有键值

python - 如何使用 pyramid cookie 在 tornado web 框架中对用户进行身份验证?

带有 While 循环的 PHP 表单仅发送最后一个 $_POST 复选框

range - Nmap IP范围规范

.net - 将范围对象从 VBA 传递到 .NET 会导致 "Runtime Error 91"