2024-04-25 20:19:06 发布
网友
我的密码。我已经写了轮换名单的代码
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'] ['a', 'b', 'c']
预计出局
['a', 'b', 'c'] ['c', 'a', 'b'] ['b', 'c', 'a']
使用来自collections的deque
deque
from collections import deque foo = ['a', 'b', 'c'] bar = deque(foo) for _ in range(len(bar)): print(bar) # or ptint(list(bar)) bar.rotate()
您可以在两个方向和任意步骤旋转。你知道吗
除了@yatu的答案之外,您可以在每个循环迭代中只旋转一个元素:
s = 'abc' lst = list(s) print(lst) for x in range(0,len(lst)-1): lst = lst[-1:] + lst[:-1] print (lst)
因为你覆盖了原来的列表,所以在第二次迭代中,你旋转了一个额外的位置,最后得到了相同的列表。创建临时变量:
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']
作为旁注-您可能会发现collections.deque对于这样的任务很有趣:
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'])
使用来自collections的
deque
您可以在两个方向和任意步骤旋转。你知道吗
除了@yatu的答案之外,您可以在每个循环迭代中只旋转一个元素:
因为你覆盖了原来的列表,所以在第二次迭代中,你旋转了一个额外的位置,最后得到了相同的列表。创建临时变量:
作为旁注-您可能会发现
collections.deque
对于这样的任务很有趣:相关问题 更多 >
编程相关推荐