擅长:python、mysql、java
<p>前面的答案中提到的空白错误解释了眼前的问题——在第一次传递<code>for i in lst:</code>结束时返回结果,而不是在循环完成后返回结果——但是简化代码也有意义,这样代码就更少了,错误也更容易被发现。下面是一个例子(为了区别,函数从<code>rotations</code>重命名为<code>rotor</code>)。</p>
<pre><code>def rotor(lst):
out = []
for i in lst:
s = str(i)
out.append([int(s[k:]+s[:k]) for k in range(len(s))])
return out
</code></pre>
<p>鉴于上述情况,<code>rotor([456, 1789, 25887])</code>返回</p>
<pre><code>[[456, 564, 645],
[1789, 7891, 8917, 9178],
[25887, 58872, 88725, 87258, 72588]]
</code></pre>