如何将列表中的最后一项移到python的前面?

时间:2011-06-27 08:57:15

标签: python list

我彻底搜查但找不到与此具体相关的任何内容。我有一个清单:

a = [two, three, one]

我想将one移到前面,所以它变为:

a = [one, two, three]

问题是,它可能是列表中的任意数量。假设无法知道是否会有50个项目或3个。

6 个答案:

答案 0 :(得分:24)

基本上:

a.insert(0, a.pop())

如果您经常这样做,请考虑使用collections.deque

答案 1 :(得分:12)

-1索引与最后一项有关。

a = a[-1:] + a[:-1]

这适用于列表中的任意数量的元素。

答案 2 :(得分:5)

您可以使用以下代码:

a.insert(0, a.pop())

答案 3 :(得分:1)

如果要将列表的第一项移至最后,可以使用此 -

lst=['one','two','three']
lst.insert(len(lst),lst.pop(0)) # result ['two','three','one']

答案 4 :(得分:0)

a = ['two', 'three', 'one']
a = a[-1:] + a[0:-1]
print a



a = ['two', 'three', 'one']

a[0:0] = a[-1:]
del a[-1]
print a

我更喜欢第二种方式,因为操作已经到位,而第一种方式是创建新列表

答案 5 :(得分:0)

趣味

插入

最好的方法就是表示:

>>> a = ["two","three","one"]
>>> a.insert(0,a.pop())
>>> a
['one', 'two', 'three']

弹出

但是,如果我应该做一些原创的话,我会做到这一点:

>>> a = ["two","three","one"]
>>> a = [a.pop()] + a
>>> a
['one', 'two', 'three']

最后一次锻炼,这个:

>>> a = ["two","three","one"]
>>> a = [a[-1]] + a[:-1]
>>> a
['one', 'two', 'three']