Dada una Lista, la tarea es filtrar elementos de la lista en función de otra lista de strings. Este tipo de problemas son bastante comunes al raspar sitios web.
Ejemplos:
Input: List_string1 = ['key', 'keys', 'keyword', 'keychain', 'keynote'] List_string2 = ['home/key/1.pdf', 'home/keys/2.pdf', 'home/keyword/3.pdf', 'home/keychain/4.pdf', 'home/Desktop/5.pdf', 'home/keynote/6.pdf'] Output: ['home/Desktop/5.pdf'] Explanation: We filter only those element from list_string2 that do not have string in list_string1
A continuación se presentan algunas formas de lograr la tarea anterior.
Método #1: Usar la iteración
# Python code to filter element from list # based on another list of string. # List Initialization Input = ['key', 'keys', 'keyword', 'keychain', 'keynote'] Input_string = ['home/key/1.pdf', 'home/keys/2.pdf', 'home/keyword/3.pdf', 'home/keychain/4.pdf', 'home/Desktop/5.pdf', 'home/keynote/6.pdf'] Output = Input_string.copy() temp = [] # Using iteration for elem in Input_string: for n in Input: if n in elem: temp.append(elem) for elem in temp: if elem in Output: Output.remove(elem) # Printing print("List of keywords are:", Input) print("Given list:", Input_string) print("filtered list is :", Output)
La lista de palabras clave es: [‘key’, ‘keys’, ‘keyword’, ‘keychain’, ‘keynote’]
Lista dada: [‘home/key/1.pdf’, ‘home/keys/2.pdf’, ‘home/keyword/3.pdf’, ‘home/keychain/4.pdf’, ‘home/Desktop/5.pdf’, ‘home/keynote/6.pdf’] la
lista filtrada es: [‘home/Desktop/ 5.pdf’]
Método #2: Usar la comprensión de listas
# Python code to filter element from list # based on another list of string. # List Initialization Input = ['key', 'keys', 'keyword', 'keychain', 'keynote'] Input_string = ['home/key/1.pdf', 'home/keys/2.pdf', 'home/keyword/3.pdf', 'home/keychain/4.pdf', 'home/Desktop/5.pdf', 'home/keynote/6.pdf'] # Using list comprehension Output = [b for b in Input_string if all(a not in b for a in Input)] # Printing print("List of keywords are:", Input) print("Given list:", Input_string) print("filtered list is :", Output)
La lista de palabras clave es: [‘key’, ‘keys’, ‘keyword’, ‘keychain’, ‘keynote’]
Lista dada: [‘home/key/1.pdf’, ‘home/keys/2.pdf’, ‘home/keyword/3.pdf’, ‘home/keychain/4.pdf’, ‘home/Desktop/5.pdf’, ‘home/keynote/6.pdf’] la
lista filtrada es: [‘home/Desktop/ 5.pdf’]
Publicación traducida automáticamente
Artículo escrito por everythingispossible y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA