python - Python 中是否有嵌套范围使用 for 循环的简写形式?
问题描述
在为大学实现矩阵乘法时,我最终得到了一个 3 次嵌套的 for 循环,只使用范围。我个人不喜欢嵌套,并问自己 Python 中是否有一些东西可以“简化”这种特殊情况的语法。
我在互联网上查找了该内容,但不幸的是我找不到任何东西。
我得到的代码看起来有点像这样:
for i in range(a):
for j in range(b):
for k in range(c):
# some stuff
由于 Python 能够返回多个值,我认为应该有一些迭代器返回 N 个嵌套范围的 N 个索引 - 使用 for 循环,例如:
# 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))
应该也是可以的。我的问题,这是否存在,如果不存在,为什么?
先感谢您。:)
解决方案
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 中未选择选项时循环的简单循环
- android - 模拟器:PANIC:损坏的 AVD 系统路径。检查您的 ANDROID_SDK_ROOT 值 [C:\Users\Public\Android\Sdk]
- jsp - 只显示表达式语言值一次
- python - 我的爬取代码不打印任何结果
- linux - 制作一个 bash 函数,在参数中使用一些特殊字符
- list - Prolog 从列表中删除元素
- javascript - this.state.item.id 未定义。反应式
- python - 我可以为 gevent 池设置最大任务或最大内存限制吗?
- ios - SignIn with Apple 的自定义圆形按钮
- java - 在活动之间同时发送数据,同时不断更新数据