gpt4 book ai didi

python - Python中依赖于前一个循环的任意数量的嵌套循环

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:07 25 4
gpt4 key购买 nike

我试图弄清楚如何迭代任意数量的循环,其中每个循环都取决于最近的外部循环。以下代码是我想要执行的操作的示例:

def function(z):
n = int(log(z))
tupes = []
for i_1 in range(1, n):
for i_2 in range(1, i_1):
...
...
...
for i_n in range(1, i_{n - 1}):
if i_1*i_2*...*i_n > z:
tupes.append((i_1, i_2,..., i_n))
return tupes

虽然我希望它适用于任何 z > e**2,但它足以适用于 z高达 e**100。我知道如果我采用适当的 range 的笛卡尔积,我最终会得到我想要的元组的超集,但我只想获得我寻找的元组。

如果有人能帮我解决这个问题,我将不胜感激。提前致谢。

最佳答案

组合可以按升序排列;事实上,这是 itertools.combinations 的默认行为。

代码:

for i1 in range(1,6):
for i2 in range(1,i1):
for i3 in range(1,i2):
print (i3, i2, i1)

# (1, 2, 3)
# (1, 2, 4)
# ...
# (3, 4, 5)

相当于代码:

from itertools import combinations

for combination in combinations(range(1,6), 3):
print combination

# (1, 2, 3)
# (1, 2, 4)
# ...
# (3, 4, 5)

使用组合而不是笛卡尔积可以将样本空间缩小到您想要的程度。

关于python - Python中依赖于前一个循环的任意数量的嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com