Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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生成器-不产生任何结果或跳转到下一个?_Python_List_Generator - Fatal编程技术网

Python生成器-不产生任何结果或跳转到下一个?

Python生成器-不产生任何结果或跳转到下一个?,python,list,generator,Python,List,Generator,我写了一段Python代码片段 def all_but(n): for i in range(10): if i != n: yield i >>> list(all_but(5)) [0, 1, 2, 3, 4, 6, 7, 8, 9] 嗯,输出是我所期望的。但我不完全理解当I==5时会发生什么。生成器是否不产生任何结果,或者跳转到第六个结果?根据评论总结,每当它点击“yield”关键字时,生成器输出 它跳转到循环的下一个迭

我写了一段Python代码片段

def all_but(n):
    for i in range(10):
        if i != n:
            yield i

>>> list(all_but(5))
[0, 1, 2, 3, 4, 6, 7, 8, 9]

嗯,输出是我所期望的。但我不完全理解当I==5时会发生什么。生成器是否不产生任何结果,或者跳转到第六个结果?

根据评论总结,每当它点击“yield”关键字时,生成器输出

它跳转到循环的下一个迭代。甚至不点击
在这个迭代中产生
,因为
if
条件导致false。@YaroslavAdmin-Ah。因此,发电机将屈服,直到达到屈服。嗯,我觉得我说的是一个明显的事实。当
n=5
时,
if
条件会跳过,所以当这种情况发生时,它只会进入下一个迭代,而不执行
产生I