-
SMILET
def rotate(l, n): return l[-n:] + l[:-n]更传统的方向:def rotate(l, n): return l[n:] + l[:n]例:example_list = [1, 2, 3, 4, 5]rotate(example_list, 2)# [3, 4, 5, 1, 2]参数rotate是一个列表和一个表示移位的整数。该函数使用切片创建两个新列表,并返回这些列表的连接。该rotate功能不会修改输入列表。
-
GCT1015
如果适用,您可以将其collections.deque用作解决方案:import collectionsd = collections.deque([1,2,3,4,5])d.rotate(3)print d>>> deque([3, 4, 5, 1, 2])作为奖励,我希望它比内置列表更快。
-
Smart猫小萌
以下函数将旋转列表l,x右侧空格:def rotate(l, x): return l[-x:] + l[:-x]请注意,如果x超出范围,这将仅返回原始列表[-len(l), len(l)]。要使其适用于所有值x,请使用:def rotate(li, x): return li[-x % len(li):] + li[:-x % len(li)]