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