使用此代码:
from itertools import product
for a, b, c, d in product(range(low, high), repeat=4):
print (a, b, c, d)
我有这样一个输出:
0 0 0 0
0 0 0 1
0 0 0 2
0 0 1 0
0 0 1 1
0 0 1 2
0 0 2 0
0 0 2 1
0 0 2 2
但是我怎样才能创建一个能够做到这一点的算法:
0 0 0 0
0 0 0 1
0 0 0 2
0 0 0 3
0 0 0 4
0 0 1 1
0 0 1 2
0 0 1 3
0 0 1 4
0 0 2 2
0 0 2 3
0 0 2 4
0 0 3 3
0 0 3 4
0 0 4 4
更重要的是:输出的每一列必须有不同的范围,例如:第一列:0-4第二列:0-10等等。 列的数量(a,b,c,d)不是固定的;根据程序的其他部分,可以在2到200之间。你知道吗
更新:更容易理解和清楚
我需要的是这样的东西:
for a in range (0,10):
for b in range (a,10):
for c in range (b,10):
for d in range (c,10):
print(a,b,c,d)
这个问题已经部分解决了,但是在如何更改range
参数方面仍然有问题,比如上面的例子。
请原谅我弄得一团糟!:)
^{} 已经可以准确地完成您想要的任务,只需将多个iterable(在本例中是您想要的范围)传递给它即可。它将从每个传递的iterable中收集一个元素。例如:
输出:
如果您的输入范围是可变的,只需将循环放在函数中并用不同的参数调用它。你也可以按照
如果您有大量的输入iterables。你知道吗
对于变量范围的更新请求,
itertools.product
的一种很好的短路方法并不那么清楚,尽管您总是可以检查每个iterable是否按升序排序(因为变量范围基本上就是这样确保的)。根据你的例子:你在找这样的东西吗?你知道吗
输出:
相关问题 更多 >
编程相关推荐