我的代码。我写了旋转列表的代码
s = 'abc'
lst = list(s)
for x in range(0,len(lst)):
lst = lst[-x:] + lst[:-x]
print (lst)
Run Code Online (Sandbox Code Playgroud)
我的出
['a', 'b', 'c']
['c', 'a', 'b']
['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
预期中
['a', 'b', 'c']
['c', 'a', 'b']
['b', 'c', 'a']
Run Code Online (Sandbox Code Playgroud)
由于覆盖过多,因此是原始列表,因此在第二次迭代中,您将旋转并增加位置并最终得到相同的列表。创建一个临时变量:
s = 'abc'
lst = list(s)
for x in range(0,len(lst)):
lst_ = lst[-x:] + lst[:-x]
print (lst_)
['a', 'b', 'c']
['c', 'a', 'b']
['b', 'c', 'a']
Run Code Online (Sandbox Code Playgroud)
恰如其分-您可能会对collections.deque这种任务感兴趣:
from collections import deque
d = deque(s)
for _ in range(len(s)):
print(d)
d.rotate()
deque(['a', 'b', 'c'])
deque(['c', 'a', 'b'])
deque(['b', 'c', 'a'])
Run Code Online (Sandbox Code Playgroud)