Python | Eliminar todas las ocurrencias en la lista anidada

La tarea de eliminar un elemento generalmente no representa ningún desafío, pero a veces, podemos tener un problema más complejo que simplemente eliminar un solo elemento o realizar la eliminación en una lista normal. El problema puede ser eliminar todas las apariciones de la lista anidada. Analicemos ciertas formas en que se puede resolver este problema.

Método #1: Usar la comprensión de listas

La comprensión de la lista se puede utilizar como un método más corto para el método más largo recomendado en la forma normal de los bucles para realizar esta tarea en la que solo buscamos una coincidencia y reconstruimos la lista sin el elemento de la lista de destino.

# Python3 code to demonstrate
# Remove all occurrences in nested list
# using list comprehension
  
# initializing list
test_list = [[4, 5], [1, 2, 3], [4, 5], [8, 9], [10, 11]]
  
# initializing list to delete
del_list = [4, 5]
  
# printing original list
print("The original list : " + str(test_list))
  
# printing delete list 
print("The list to be deleted is : " + str(del_list))
  
# using list comprehension
# Remove all occurrences in nested list
res = [i for i in test_list if i != del_list]
  
# print result
print("The list after removal of list element : " + str(res))
Producción :

The original list : [[4, 5], [1, 2, 3], [4, 5], [8, 9], [10, 11]]
The list to be deleted is : [4, 5]
The list after removal of list element : [[1, 2, 3], [8, 9], [10, 11]]

Método #2: Usarfilter() + partial() + operator.ne

La tarea también se puede realizar utilizando las funciones anteriores. La función de filtro realiza el filtrado y devuelve la lista parcial por función parcial y se impone una condición diferente utilizando el operator.nemétodo.

# Python3 code to demonstrate
# Remove all occurrences in nested list
# using filter() + partial() + operator.ne
from functools import partial
from operator import ne
  
# initializing list
test_list = [[4, 5], [1, 2, 3], [4, 5], [8, 9], [10, 11]]
  
# initializing list to delete
del_list = [4, 5]
  
# printing original list
print("The original list : " + str(test_list))
  
# printing delete list 
print("The list to be deleted is : " + str(del_list))
  
# using filter() + partial() + operator.ne
# Remove all occurrences in nested list
res = list(filter(partial(ne, del_list), test_list))
  
# print result
print("The list after removal of list element : " + str(res))
Producción :

The original list : [[4, 5], [1, 2, 3], [4, 5], [8, 9], [10, 11]]
The list to be deleted is : [4, 5]
The list after removal of list element : [[1, 2, 3], [8, 9], [10, 11]]

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *