gpt4 book ai didi

python - 部分嵌套 for 循环

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:17 27 4
gpt4 key购买 nike

注意:更正问题!

众所周知,itertools 允许轻松创建嵌套 for使用itertools.product循环。但以下是我想要但还不能做的。使用

lfl = int(input( "length of first loop: "))
nol = int(input( "number of loops: "))

造成:

  • 循环长度:12
  • 循环次数:4

我想要一个相当于:

for i1 in range(1,12):
for i2 in range(i1,12):
for i3 in range(i2,12):
for i4 in range(i3,12):
function(i1,i2,i3,i4)

itertools.product 的作用很多。

或者更一般的问题,其中 nol 导致创建 func_1(x), func_2(x,y), .... func_nol-1(x,y,...) 和该代码需要相当于:

for i1 in range(1,12):
for i2 in range(func_1(i1),12):
for i3 in range(func_2(i1,i2),12):
for i4 in range(func_3(i1,i2,i3),12):
function(i1,i2,i3,i4)

还有一个更进一步的概括是

for i1 in range(1,12):
for i2 in range(start_func_1(i1, *global),end_func_(12, *global)):
for i3 in range(start_func_2(i1,i2,*global),end_func_2(12,*global):
for i4 in range(start_func_3 etc....

最佳答案

对于更正的问题,请在范围列表中尝试使用 combinations_with_replacement 而不是 product:

from itertools import combinations_with_replacement

nums = [10, 11, 12, 13]
for c in combinations_with_replacement(nums, 3):
print c

打印

(10, 10, 10)
(10, 10, 11)
(10, 10, 12)
(10, 10, 13)
(10, 11, 11)
(10, 11, 12)
(10, 11, 13)
(10, 12, 12)
...

关于python - 部分嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29593627/

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