a = [1,2,3,4,5] >>> a.append(a.pop(0)) >>> a [2, 3, 4, 5, 1]
但是,这很昂贵,因为它必须移动整个列表的内容,即O(n)。collections.deque
如果在您的Python版本中可用,则可能是一个更好的选择,它允许在大约O(1)的时间内从任一端插入和删除对象:
>>> a = collections.deque([1,2,3,4,5])
>>> a
deque([1, 2, 3, 4, 5])
>>> a.rotate(-1)
>>> a
deque([2, 3, 4, 5, 1])
还要注意,这两种解决方案都涉及更改原始序列对象,而您的解决方案将创建一个新列表并将其分配给a
。因此,如果我们这样做:
>>> c = a
>>> # rotate a