Ho la lista in cui [0, 1, 2, 3, 4]
mi piacerebbe farcela [1, 2, 3, 4]
. Come posso procedere?
Ho la lista in cui [0, 1, 2, 3, 4]
mi piacerebbe farcela [1, 2, 3, 4]
. Come posso procedere?
Risposte:
list.pop (indice)
>>> l = ['a', 'b', 'c', 'd']
>>> l.pop(0)
'a'
>>> l
['b', 'c', 'd']
>>>
del list [indice]
>>> l = ['a', 'b', 'c', 'd']
>>> del l[0]
>>> l
['b', 'c', 'd']
>>>
Entrambi modificano l'elenco originale.
Altri hanno suggerito di utilizzare l'affettatura:
Inoltre, se stai eseguendo molti pop (0), dovresti guardare collezioni.deque
from collections import deque
>>> l = deque(['a', 'b', 'c', 'd'])
>>> l.popleft()
'a'
>>> l
deque(['b', 'c', 'd'])
affettare:
x = [0,1,2,3,4]
x = x[1:]
Che effettivamente restituirebbe un sottoinsieme dell'originale ma non lo modificherà.
x
è vuoto, x=x[1:]
lo lascerebbe vuoto senza lamentarsi. x.pop(0)
getterebbe per un elenco vuoto x
. A volte lanciare è ciò che si vuole: se il presupposto che ci sia almeno un elemento nell'elenco è sbagliato, si potrebbe desiderare di essere avvisati.
>>> x = [0, 1, 2, 3, 4]
>>> x.pop(0)
0
Maggiori informazioni qui .
È possibile utilizzare list.reverse()
per invertire l'elenco, quindi list.pop()
per rimuovere l'ultimo elemento, ad esempio:
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
Puoi anche usare list.remove(a[0])
per pop
estrarre il primo elemento nell'elenco.
>>>> a=[1,2,3,4,5]
>>>> a.remove(a[0])
>>>> print a
>>>> [2,3,4,5]
a.remove(a[1-1])
? Questo è un altro modo.
list.remove(a[i])
. Con valori duplicati, potrebbe trovare un elemento precedente con lo stesso valore e rimuoverlo invece dell'i.
Se lavori con numpy devi usare il metodo di eliminazione :
import numpy as np
a = np.array([1, 2, 3, 4, 5])
a = np.delete(a, 0)
print(a) # [2 3 4 5]
Esiste una struttura dati chiamata "deque" o coda a doppia estremità che è più veloce ed efficiente di un elenco. Puoi usare la tua lista e convertirla in deque e fare le trasformazioni richieste in essa. Puoi anche riconvertire il deque nella lista.
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 fornisce anche funzioni molto utili come l'inserimento di elementi su entrambi i lati dell'elenco o su qualsiasi indice specifico. Puoi anche ruotare o invertire un deque. Provaci!!