Python: elimina palabras que contienen caracteres de lista

A veces, en el proceso de filtrado de datos tenemos un problema en el que necesitamos eliminar palabras que están compuestas de ciertas letras. Este tipo de aplicación es común en el dominio de la ciencia de datos. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso all()de la comprensión de listas +
La combinación de los métodos anteriores se puede utilizar para realizar esta tarea. En esto, solo verificamos todos los caracteres de la lista usando all() en cada lista y filtramos la string que tiene cualquiera de los caracteres.

# Python3 code to demonstrate 
# Remove words containing list characters
# using list comprehension + all()
from itertools import groupby
  
# initializing list 
test_list = ['gfg', 'is', 'best', 'for', 'geeks']
  
# initializing char list 
char_list = ['g', 'o']
  
# printing original list
print ("The original list is : " + str(test_list))
  
# printing character list
print ("The character list is : " + str(char_list))
  
# Remove words containing list characters
# using list comprehension + all()
res = [ele for ele in test_list if all(ch not in ele for ch in char_list)]
  
# printing result 
print ("The filtered strings are : " + str(res))
Producción :

The original list is : ['gfg', 'is', 'best', 'for', 'geeks']
The character list is : ['g', 'o']
The filtered strings are : ['is', 'best']

Método n.º 2: Usar bucle
Este es un método bruto en el que se puede realizar esta tarea. En esto, usamos sentencias de bucle y condicionales para realizar esta tarea.

# Python3 code to demonstrate 
# Remove words containing list characters
# using loop
from itertools import groupby
  
# initializing list 
test_list = ['gfg', 'is', 'best', 'for', 'geeks']
  
# initializing char list 
char_list = ['g', 'o']
  
# printing original list
print ("The original list is : " + str(test_list))
  
# printing character list
print ("The character list is : " + str(char_list))
  
# Remove words containing list characters
# using loop
res = []
flag = 1
for ele in test_list:
    for idx in char_list:
        if idx not in ele:
            flag = 1
        else:
            flag = 0  
            break
    if(flag == 1):
        res.append(ele)  
  
# printing result 
print ("The filtered strings are : " + str(res))
Producción :

The original list is : ['gfg', 'is', 'best', 'for', 'geeks']
The character list is : ['g', 'o']
The filtered strings are : ['is', 'best']

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 *