Ответ 1
В принципе:
a.insert(0, a.pop())
Если вы часто это делаете, используйте collections.deque
.
Я тщательно искал, но не могу найти ничего, относящегося к этому конкретному конкретному. У меня есть список:
a = [two, three, one]
Я хочу переместить one
на фронт, поэтому он становится:
a = [one, two, three]
Дело в том, что это может быть ЛЮБОЕ количество номеров в списке. Предположим, что нет способа узнать, будет ли 50 предметов или 3.
В принципе:
a.insert(0, a.pop())
Если вы часто это делаете, используйте collections.deque
.
Индекс -1
относится к последнему элементу.
a = a[-1:] + a[:-1]
Это будет работать для любого количества элементов в списке.
Вы можете использовать следующий код:
a.insert(0, a.pop())
Если вы хотите перенести первый элемент списка на последний, вы можете использовать это -
lst=['one','two','three']
lst.insert(len(lst),lst.pop(0)) # result ['two','three','one']
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
Я предпочитаю второй способ, потому что операции на месте, а в первом случае создается новый список
Лучший способ был просто указан как:
>>> 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']