Dada una malla de caracteres, que contiene caracteres faltantes, haga coincidir la string que coincide con la malla.
Ejemplo:
Entrada : test_list = [“geeks”, “best”, “peeks”], mesh = “_ee_s”
Salida : [‘geeks’, ‘peeks’]
Explicación : Los elementos según la malla son geeks y peeks.Entrada : test_list = [“geeks”, “best”, “test”], mesh = “_e_t”
Salida : [‘best’, ‘test’]
Explicación : los elementos según la malla son los mejores y los de prueba.
Método #1: Usando loop + all() + len() + zip()
La combinación de lo anterior se puede utilizar para resolver este problema. En esto, realizamos la tarea de hacer coincidir la malla y cada string usando zip() y all() se usa para verificar todas las strings, len() se usa para probar la malla de coincidencia de longitud de string correcta.
Python3
# Python3 code to demonstrate working of # Extract Mesh matching Strings # Using len() + loop + zip() + all() # initializing list test_list = ["geeks", "best", "peeks", "for", "seeks"] # printing original list print("The original list : " + str(test_list)) # initializing mesh mesh = "_ee_s" res = [] for sub in test_list: # testing for matching mesh, checking each character and length if (len(sub) == len(mesh)) and all((ele1 == "_") or (ele1 == ele2) for ele1, ele2 in zip(mesh, sub)): res.append(sub) # printing result print("The extracted strings : " + str(res))
The original list : ['geeks', 'best', 'peeks', 'for', 'seeks'] The extracted strings : ['geeks', 'peeks', 'seeks']
Método #2: Usar la comprensión de listas
Esto resuelve el problema de manera similar al método anterior, la única diferencia aquí es que se proporciona una solución de 1 línea.
Python3
# Python3 code to demonstrate working of # Extract Mesh matching Strings # Using list comprehension # initializing list test_list = ["geeks", "best", "peeks", "for", "seeks"] # printing original list print("The original list : " + str(test_list)) # initializing mesh mesh = "_ee_s" # one liner to solve this problem res = [sub for sub in test_list if (len(sub) == len(mesh)) and all((ele1 == "_") or (ele1 == ele2) for ele1, ele2 in zip(mesh, sub))] # printing result print("The extracted strings : " + str(res))
The original list : ['geeks', 'best', 'peeks', 'for', 'seeks'] The extracted strings : ['geeks', 'peeks', 'seeks']
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