Python | Filtrar una lista basada en la lista dada de strings

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)
Producción:

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)
Producción:

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

Deja una respuesta

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