如何在Python中遍历高阶维?

问题描述 投票:0回答:1

在python中,我们可以使用range(x)0遍历到x-1。但是,如果我想遍历高阶范围怎么办?例如,给定(a, b),我想遍历所有(x1, x2)使得0 <= x1 < a, 0<= x2 < b。如果尺寸是固定的,那么很容易,比如说它是k维(在我给出的示例中,k为2),那么我们可以简单地对k循环进行硬编码来实现它,但是当尺寸也是一个变量时如何呢? ?是否有任何优雅的pythonic方式来处理此问题?

python python-3.x
1个回答
0
投票

使用itertools.product

from itertools import product

for x, y, z in product(range(a), range(b), range(c)):
    print( (x,y,z) )

尺寸可变:

limits = [5, 3, 7, 6]

for v in product(*(range(n) for n in limits)):
    print(v)
© www.soinside.com 2019 - 2024. All rights reserved.