Подтвердить что ты не робот

Как перенести последний элемент в список на передний план в python?

Я тщательно искал, но не могу найти ничего, относящегося к этому конкретному конкретному. У меня есть список:

a = [two, three, one]

Я хочу переместить one на фронт, поэтому он становится:

a = [one, two, three]

Дело в том, что это может быть ЛЮБОЕ количество номеров в списке. Предположим, что нет способа узнать, будет ли 50 предметов или 3.

4b9b3361

Ответ 1

В принципе:

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

Если вы часто это делаете, используйте collections.deque.

Ответ 2

Индекс -1 относится к последнему элементу.

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

Это будет работать для любого количества элементов в списке.

Ответ 3

Вы можете использовать следующий код:

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

Ответ 4

Если вы хотите перенести первый элемент списка на последний, вы можете использовать это -

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

Ответ 5

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

Я предпочитаю второй способ, потому что операции на месте, а в первом случае создается новый список

Ответ 6

Fun

Вставка

Лучший способ был просто указан как:

>>> 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']