У меня есть список, в который [0, 1, 2, 3, 4]
я хотел бы войти [1, 2, 3, 4]
. Как мне это сделать?
У меня есть список, в который [0, 1, 2, 3, 4]
я хотел бы войти [1, 2, 3, 4]
. Как мне это сделать?
Ответы:
list.pop (индекс)
>>> l = ['a', 'b', 'c', 'd']
>>> l.pop(0)
'a'
>>> l
['b', 'c', 'd']
>>>
список дел [индекс]
>>> l = ['a', 'b', 'c', 'd']
>>> del l[0]
>>> l
['b', 'c', 'd']
>>>
Они оба изменяют ваш первоначальный список.
Другие предложили использовать нарезку:
Кроме того, если вы выполняете много pop (0), вы должны посмотреть на collection.deque
from collections import deque
>>> l = deque(['a', 'b', 'c', 'd'])
>>> l.popleft()
'a'
>>> l
deque(['b', 'c', 'd'])
нарезка:
x = [0,1,2,3,4]
x = x[1:]
Который на самом деле возвращает подмножество оригинала, но не изменяет его.
x
пуст, x=x[1:]
оставил бы его пустым, не жалуясь. x.pop(0)
бросил бы для пустого списка x
. Иногда бросать - это то, что нужно: если предположение о том, что в списке есть хотя бы один элемент, неверно, можно получить уведомление.
>>> x = [0, 1, 2, 3, 4]
>>> x.pop(0)
0
Подробнее об этом здесь .
Вы можете использовать, list.reverse()
чтобы перевернуть список, а затем list.pop()
удалить последний элемент, например:
l = [0, 1, 2, 3, 4]
l.reverse()
print l
[4, 3, 2, 1, 0]
l.pop()
0
l.pop()
1
l.pop()
2
l.pop()
3
l.pop()
4
Вы можете также использовать list.remove(a[0])
для pop
из первого элемента в списке.
>>>> a=[1,2,3,4,5]
>>>> a.remove(a[0])
>>>> print a
>>>> [2,3,4,5]
a.remove(a[1-1])
? Это другой способ.
list.remove(a[i])
. С дублирующимися значениями он может найти более ранний элемент с тем же значением и удалить его вместо i-го.
Существует структура данных, называемая «deque» или двусторонняя очередь, которая работает быстрее и эффективнее, чем список. Вы можете использовать свой список и преобразовать его в deque и выполнить необходимые преобразования в нем. Вы также можете конвертировать обратно в список.
import collections
mylist = [0, 1, 2, 3, 4]
#make a deque from your list
de = collections.deque(mylist)
#you can remove from a deque from either left side or right side
de.popleft()
print(de)
#you can covert the deque back to list
mylist = list(de)
print(mylist)
Deque также предоставляет очень полезные функции, такие как вставка элементов в любую сторону списка или в любой конкретный индекс. Вы также можете повернуть или перевернуть деку. Попробуйте!