Python 一次产生一个结果的生成函数

Python 一次产生一个结果的生成函数,python,Python,我想知道为什么这个生成函数只得到一个结果 def scramble(seq): for i in range(len(seq)): seq = seq[1:] + seq[:1] yield seq print(list(scramble('spam'))) 返回['spam']而不是我所期望的类似['spam',pams',amsp',mspa']的yield seq行没有足够的缩进,使其脱离for循环 def scramble(seq): for

我想知道为什么这个生成函数只得到一个结果

def scramble(seq):
    for i in range(len(seq)):
        seq = seq[1:] + seq[:1]
    yield seq

print(list(scramble('spam')))

返回
['spam']
而不是我所期望的类似
['spam',pams',amsp',mspa']

yield seq
行没有足够的缩进,使其脱离for循环

def scramble(seq):
    for i in range(len(seq)):
        seq = seq[1:] + seq[:1]
        yield seq

print(list(scramble('spam')))

请将您的代码放到文本字段:有人想帮助您并尝试您的代码,但没有人会从图片中重新键入代码。谢谢您的建议。