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 inglesesEntrada : 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