【发布时间】:2019-11-06 18:22:46
【问题描述】:
在python中,我们可以使用range(x)从0遍历到x-1。但是如果我想遍历一个高阶范围怎么办?例如,给定(a, b),我想遍历所有(x1, x2),使得0 <= x1 < a, 0<= x2 < b。如果维度是固定的,那么很容易,说它是k维(在我给出的示例中,k是2),那么我们可以简单地硬编码k个循环来实现它,但是当维度也是一个变量时呢?有什么优雅的pythonic方式来处理这个吗?
【问题讨论】:
-
看看
itertools模块,我敢打赌它有这样的功能。 -
嵌套 for 循环?
for i in range(x1): for j in range(x2):... -
@BrianJoseph 只有在事先知道 for 循环的数量时,才能编写嵌套的 for 循环。但是正如我所提到的,当维度是变量时,您将无法编写 for 循环。
-
这里的“维度”是什么意思?你能展示一个更充实的代码示例来说明吗?
-
@YuGu 啊我明白了,所以你需要的嵌套循环的数量是可变的。在那种情况下, itertools.product 是喜欢 kaya 的回答建议的方式
标签: python python-3.x