Para eliminar un elemento dunha lista (matriz) de tipo lista en Python, use os métodos de lista clear(), pop() e remove(). Tamén pode especificar a posición e o intervalo da lista usando índice ou porción e, a continuación, eliminalo mediante a instrución del.
A seguinte información ofrécese aquí.
- Elimina todos os elementos:
clear()
- Elimina un elemento na posición especificada e obtén o seu valor.:
pop()
- Busca elementos co valor especificado e elimina o primeiro elemento.:
remove()
- Eliminando especificando a posición e o intervalo no segmento de índice:
del
- Eliminar por lotes varios elementos que cumpran os criterios.:indicación de inclusión na lista
Teña en conta que as listas poden almacenar datos de diferentes tipos e son estrictamente diferentes das matrices. Use array (biblioteca estándar) ou NumPy cando queira xestionar matrices para procesos que requiren tamaño de memoria ou enderezo de memoria, ou para o cálculo numérico de datos a gran escala.
- Elimina todos os elementos:clear()
- Elimina un elemento na posición especificada e obtén o seu valor.:pop()
- Busca elementos co valor especificado e elimina o primeiro elemento.:remove()
- Eliminando especificando a posición e o intervalo no segmento de índice:del
- Eliminar por lotes varios elementos que cumpran os criterios.:indicación de inclusión na lista
Elimina todos os elementos:clear()
No método de lista clear(), elimínanse todos os elementos, resultando unha lista baleira.
l = list(range(10))
print(l)
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
l.clear()
print(l)
# []
Elimina un elemento na posición especificada e obtén o seu valor.:pop()
O método pop() dunha lista pódese usar para eliminar un elemento nunha posición especificada e obter o valor dese elemento.
O primeiro número (inicial) é 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]
Tamén se pode usar un valor negativo para especificar a posición desde o final (último). O final (último) é -1.
print(l.pop(-2))
# 8
print(l)
# [1, 2, 3, 5, 6, 7, 9]
Se o argumento se omite e non se especifica ningunha posición, elimínase o elemento ao final (último).
print(l.pop())
# 9
print(l)
# [1, 2, 3, 5, 6, 7]
Especificar unha posición inexistente producirá un erro.
# print(l.pop(100))
# IndexError: pop index out of range
Teña en conta que pop(0), que elimina o primeiro elemento, require o seguinte custo e non é unha operación eficiente. Vexa a seguinte páxina na wiki oficial para coñecer a complexidade computacional de varias operacións nas listas.O(n)
O(1)
O tipo deque ofrécese no módulo de coleccións de biblioteca estándar como un tipo que elimina elementos da parte superior a este custo. Por exemplo, se quere tratar os datos como unha cola (FIFO), é máis eficiente usar deque.
Busca elementos co valor especificado e elimina o primeiro elemento.:remove()
O método de lista remove() pódese usar para buscar elementos co mesmo valor especificado e eliminar o primeiro elemento.
l = ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
print(l)
# ['Alice', 'Bob', 'Charlie', 'Bob', 'Dave']
l.remove('Alice')
print(l)
# ['Bob', 'Charlie', 'Bob', 'Dave']
Se a lista contén máis dun elemento que coincida co valor especificado, só se eliminará o primeiro.
l.remove('Bob')
print(l)
# ['Charlie', 'Bob', 'Dave']
Se se especifica un valor inexistente, prodúcese un erro.
# l.remove('xxx')
# ValueError: list.remove(x): x not in list
Eliminando especificando a posición e o intervalo no segmento de índice:del
Tamén pode usar a instrución del para eliminar elementos da lista.
Especifique o elemento a eliminar polo seu índice. O primeiro índice (inicial) é 0 e o último índice (final) é -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]
Se especificas un intervalo con porcións, podes eliminar varios elementos á vez.
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]
Tamén é posible especificar todo o intervalo e eliminar todos os elementos.
l = list(range(10))
del l[:]
print(l)
# []
[start:stop:step]
Se especifica o intervalo na porción deste xeito e especifica un paso incremental, pode eliminar varios elementos de salto á vez.
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]
Para obter máis información sobre o corte, consulte o seguinte artigo.
Eliminar por lotes varios elementos que cumpran os criterios.:indicación de inclusión na lista
O proceso de eliminación de elementos que cumpren as condicións equivale ao proceso de deixar (extraer) elementos que non cumpren as condicións. A notación de comprensión de lista úsase para este tipo de procesamento.
- Artigos relacionados:Usando a notación de comprensións de listas de Python
A continuación móstrase un exemplo de eliminación de elementos pares ou impares (= deixando elementos pares ou impares).%
Este é o operador restante.i % 2
Este é o resto de i dividido por 2.
Na notación de comprensión da lista, créase unha nova lista. A diferenza dos métodos de tipo de lista introducidos ata agora, a lista orixinal permanece sen cambios.
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]
Outros exemplos. É posible unha variedade de procesamentos dependendo da expresión 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']
Se desexa eliminar elementos duplicados, use o tipo de conxunto de conxunto.
print(list(set(l)))
# ['David', 'Alice', 'Charlie', 'Bob']