Python: eliminar strings de caracteres no ingleses de la lista

Dada una lista de strings, realice la eliminación de todas las strings con caracteres no ingleses.

Entrada : test_list = [‘Bien | ????’, ‘??Geeks???’]
Salida : []
Explicación : Ambos contienen caracteres no ingleses

Entrada : test_list = [“Gfg”, “Best”]
Salida : [“Gfg”, “Best”]
Explicación : Ambas son palabras válidas en inglés.

Método #1: Usar regex + findall() + lista de comprensión

En esto, creamos una expresión regular de unicodes y verificamos la ocurrencia en la Lista de strings, extraemos cada String sin unicode usando findall().

Python3

# Python3 code to demonstrate working of 
# Remove Non-English characters Strings from List
# Using regex + findall() + list comprehension
import re
  
# initializing list
test_list = ['Gfg', 'Good| ????', "for",  '??Geeks???']
  
# printing original list
print("The original list is : " + str(test_list))
  
# using findall() to neglect unicode of Non-English alphabets
res = [idx for idx in test_list if not re.findall("[^\u0000-\u05C0\u2100-\u214F]+", idx)]
  
# printing result 
print("The extracted list : " + str(res))

Método n.° 2: Usar expresiones regulares + buscar() + filtro() + lambda

En esto, buscamos solo alfabetos en inglés en String y extraemos solo aquellos que los tienen. Usamos filter() + lambda para realizar la tarea de pasar la funcionalidad y la iteración del filtro.

Python3

# Python3 code to demonstrate working of 
# Remove Non-English characters Strings from List
# Using regex + search() + filter() + lambda
import re
  
# initializing list
test_list = ['Gfg', 'Good| ????', "for",  '??Geeks???']
  
# printing original list
print("The original list is : " + str(test_list))
  
# using search() to get only those strings with alphabets
res = list(filter(lambda ele: re.search("[a-zA-Z\s]+", ele) is not None, test_list))
  
# printing result 
print("The extracted list : " + str(res))

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 *