Python | Eliminar elemento de la lista dada que contiene dígitos específicos

Dada una lista, la tarea es eliminar todos los elementos de la lista que contiene los dígitos específicos.

Ejemplos:

Input: lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
       no_delete = ['2', '3', '4', '0']
Output: [1, 5, 6, 7, 8, 9, 11, 15, 16]
Explanation:
Numbers 2, 3, 4, 10, 12, 13, 14 contains digits 
from no_delete, therefore remove them.

Input: lst = [1, 2, 3, 4, 5, 6, 7, 8, 13, 15, 16]
       no_delete = {'6', '5', '4', '3'}
Output: [1, 2, 7, 8, 9, 10, 11, 12]
Explanation:
Numbers 3, 4, 5, 6, 13, 14, 15, 16 contains digits 
from no_delete, therefore remove them.

 
A continuación se presentan algunos métodos para realizar la tarea.

Método #1: Usar la iteración

# Python code to remove all those elements 
# from list which contains certain digits
  
# Input List Initialisation
Input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
  
# Numbers to delete
no_delete = [1, 0]
  
# Output List Initialisation
Output = []
  
# Using iteration to remove all the elements 
for elem in Input:
    flag = 1
    temp = elem
    while elem > 0:
        rem = elem % 10
        elem = elem//10
        if rem in no_delete:
            flag = 0
    if flag == 1:
        Output.append(temp)
  
# Printing Output 
print("Initial list is :", Input)
print("Delete list :", no_delete)
print("List after removing elements is :", Output)
Producción:

Initial list is : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
Delete list : [1, 0]
List after removing elements is : [2, 3, 4, 5, 6, 7, 8, 9]

 
Método n.º 2: uso de la comprensión de listas y cualquier función()

# Python code to remove all those elements from list 
# which contains certain digits
  
# Input List Initialisation
Input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
  
# Numbers to delete
no_delete = ['2', '3', '4', '0']
  
# using list comprehension and any()
Output = [a for a in Input if not 
          any(b in no_delete for b in str(a))]
  
# Printing Output 
print("Initial list is :", Input)
print("Delete list :", no_delete)
print("List after removing elements is :", Output)
Producción:

Initial list is : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
Delete list : ['2', '3', '4', '0']
List after removing elements is : [1, 5, 6, 7, 8, 9, 11, 15, 16]

 
Método n.º 3: Usar la comprensión de listas y set()

# Python code to remove all those elements from list 
# which contains certain digits
  
# Input List Initialisation
Input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
  
# Numbers to delete
no_delete = {'6', '5', '4', '3'}
  
# Using list comprehension and set
Output = [x for x in Input
         if not no_delete & set(str(x))]
  
# Printing Output 
print("Initial list is :", Input)
print("Delete list :", no_delete)
print("List after removing elements is :", Output)
Producción:

Initial list is : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 13, 15, 16]
Delete list : {'3', '4', '6', '5'}
List after removing elements is : [1, 2, 7, 8, 9, 10, 11, 12]

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *