Per eliminar un element d’una llista (matriu) de tipus llista a Python, utilitzeu els mètodes de llista clear(), pop() i remove(). També podeu especificar la posició i l’interval de la llista utilitzant index o slice i després suprimir-lo amb la instrucció del.
La informació següent es proporciona aquí.
- Elimina tots els elements:
clear()
- Suprimiu un element a la posició especificada i obteniu el seu valor.:
pop()
- Cerca elements amb el valor especificat i elimina el primer element.:
remove()
- Esborrant especificant la posició i l’interval a la secció d’índex:
del
- Eliminar per lots diversos elements que compleixen els criteris.:indicació d’inclusió a la llista
Tingueu en compte que les llistes poden emmagatzemar dades de diferents tipus i són estrictament diferents de les matrius. Utilitzeu array (biblioteca estàndard) o NumPy quan vulgueu gestionar matrius per a processos que requereixen mida de memòria o adreça de memòria, o per al càlcul numèric de dades a gran escala.
- Elimina tots els elements:clear()
- Suprimiu un element a la posició especificada i obteniu el seu valor.:pop()
- Cerca elements amb el valor especificat i elimina el primer element.:remove()
- Esborrant especificant la posició i l’interval a la secció d’índex:del
- Eliminar per lots diversos elements que compleixen els criteris.:indicació d’inclusió a la llista
Elimina tots els elements:clear()
En el mètode de llista clear(), tots els elements s’eliminen, donant lloc a una llista buida.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l.clear()
print(l)
# []
Suprimiu un element a la posició especificada i obteniu el seu valor.:pop()
El mètode pop() d’una llista es pot utilitzar per eliminar un element en una posició especificada i obtenir el valor d’aquest element.
El primer nombre (inicial) és 0.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(0))
# 0
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l.pop(3))
# 4
print(l)
# [1, 2, 3, 5, 6, 7, 8, 9]
També es pot utilitzar un valor negatiu per especificar la posició des del final (últim). El final (últim) és -1.
print(l.pop(-2))
# 8
print(l)
# [1, 2, 3, 5, 6, 7, 9]
Si s’omet l’argument i no s’especifica cap posició, s’elimina l’element al final (últim).
print(l.pop())
# 9
print(l)
# [1, 2, 3, 5, 6, 7]
Especificar una posició inexistent donarà lloc a un error.
# print(l.pop(100))
# IndexError: pop index out of range
Tingueu en compte que pop(0), que elimina el primer element, requereix el cost següent i no és una operació eficient. Vegeu la pàgina següent a la wiki oficial per conèixer la complexitat computacional de diverses operacions a les llistes.O(n)
O(1)
El tipus deque es proporciona al mòdul estàndard de col·leccions de biblioteques com un tipus que elimina elements a la part superior amb aquest cost. Per exemple, si voleu tractar les dades com una cua (FIFO), és més eficient utilitzar deque.
Cerca elements amb el valor especificat i elimina el primer element.:remove()
El mètode de llista remove() es pot utilitzar per cercar elements amb el mateix valor especificat i eliminar el primer element.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']
Si la llista conté més d’un element que coincideix amb el valor especificat, només s’eliminarà el primer.
l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']
Si s’especifica un valor inexistent, es produeix un error.
# l.remove('xxx')
# ValueError: list.remove(x): x not in list
Esborrant especificant la posició i l’interval a la secció d’índex:del
També podeu utilitzar la instrucció del per eliminar elements de la llista.
Especifiqueu l’element que voleu suprimir pel seu índex. El primer índex (inicial) és 0 i l’últim índex (final) és -1.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[0]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[-1]
print(l)
# [1, 2, 3, 4, 5, 6, 7, 8]
del l[6]
print(l)
# [1, 2, 3, 4, 5, 6, 8]
Si especifiqueu un interval amb seccions, podeu suprimir diversos elements alhora.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
del l[2:5]
print(l)
# [0, 1, 5, 6, 7, 8, 9]
l = list(range(10))
del l[:3]
print(l)
# [3, 4, 5, 6, 7, 8, 9]
l = list(range(10))
del l[4:]
print(l)
# [0, 1, 2, 3]
l = list(range(10))
del l[-3:]
print(l)
# [0, 1, 2, 3, 4, 5, 6]
També és possible especificar tot el rang i eliminar tots els elements.
l = list(range(10))
del l[:]
print(l)
# []
[start:stop:step]
Si especifiqueu l’interval del sector d’aquesta manera i especifiqueu un pas incremental, podeu suprimir diversos elements de salt alhora.
l = list(range(10))
del l[2:8:2]
print(l)
# [0, 1, 3, 5, 7, 8, 9]
l = list(range(10))
del l[::3]
print(l)
# [1, 2, 4, 5, 7, 8]
Per obtenir més informació sobre el tall, consulteu l’article següent.
Eliminar per lots diversos elements que compleixen els criteris.:indicació d’inclusió a la llista
El procés d’eliminació d’elements que compleixen les condicions és equivalent al procés de deixar (extreure) elements que no compleixen les condicions. La notació de comprensió de llista s’utilitza per a aquest tipus de processament.
- Articles relacionats:Utilitzant la notació de comprensió de llista de Python
A continuació es mostra un exemple d’eliminació d’elements parells o senars (= deixar elements parells o senars).%
Aquest és l’operador restant.i % 2
Aquesta és la resta de i dividida per 2.
A la notació de comprensió de la llista, es crea una llista nova. A diferència dels mètodes de tipus de llista introduïts fins ara, la llista original es manté sense canvis.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print([i for i in l if i % 2 == 0])
# [0, 2, 4, 6, 8]
print([i for i in l if i % 2 != 0])
# [1, 3, 5, 7, 9]
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Altres exemples. És possible una varietat de processaments en funció de l’expressió condicional.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'David']
print([s for s in l if s != 'Bob'])
# ['Alice', 'Charlie', 'David']
print([s for s in l if s.endswith('e')])
# ['Alice', 'Charlie']
Si voleu eliminar elements duplicats, utilitzeu el tipus de conjunt establert.
print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']