Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-根据布尔值禁用嵌套for循环_Python_Loops_Nested - Fatal编程技术网

Python-根据布尔值禁用嵌套for循环

Python-根据布尔值禁用嵌套for循环,python,loops,nested,Python,Loops,Nested,重写嵌套for循环的最佳方法是什么: for i in my_generator_function(args...): #do stuff... for j in another_generator_function(args...): #do more stuff 如果我想根据boolan值禁用第一个for循环,但始终保留内部for循环?当然,我可以在它周围使用if/else,并在else块中放置内部循环的副本。但是有更好的方法吗?如果我理解正确,你想在某件

重写嵌套for循环的最佳方法是什么:

for i in my_generator_function(args...):
    #do stuff...

    for j in another_generator_function(args...):
        #do more stuff

如果我想根据boolan值禁用第一个for循环,但始终保留内部for循环?当然,我可以在它周围使用if/else,并在else块中放置内部循环的副本。但是有更好的方法吗?

如果我理解正确,你想在某件事情上循环
100次或
0次,并保持内部
10次

如果这是您想要的,请尝试以下方法:

my_value = False

checker = lambda x, y: y if x else range(1)

def somefunc():
    return range(100)

for i in checker(my_value, somefunc()):
    if my_value:
        #do stuff
    for j in range(10):
        #do stuff

我认为这根本不可能。。。中止父循环时保持内部for循环运行?您到底想要什么?我尽了最大努力,重新表述问题中的代码,以明确我需要什么。好的,我知道这将如何工作。但是,如果第一个循环的序列是一个函数调用,比如在金字塔中调整大小的
(image\u center,scale=1.5,minSize=(WINDOW\u WIDTH,WINDOW\u HEIGHT)):
@kett这是什么意思?如果
my_value
False
,代码将执行外循环一次,只有
my_value
True
时,代码才会执行外循环代码,这基本上禁用了它,只执行了内循环。我编辑了问题,你明白我的意思了。基本上,我不能把
范围(checker(my_value))
放在那里,因为我在一个生成器上迭代。很抱歉,我最初关于
range
的问题措辞不恰当。@kett现在怎么样?我无法让它对我起作用,因为内部循环取决于第一个循环的输出。如果第一个已停用,则内部的一个将不再工作。我必须在内部循环之前插入一个if/else语句来捕捉它。因此,它实际上不再比在两种情况下都使用if/else更优雅了。我想我们试过……:)