我想知道为什么这个生成函数只得到一个结果
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']
答案 0 :(得分:1)
yield seq
行的缩进量不足以使其退出for循环。
def scramble(seq):
for i in range(len(seq)):
seq = seq[1:] + seq[:1]
yield seq
print(list(scramble('spam')))