Dada una lista de strings, la tarea aquí es escribir un programa de Python que pueda extraer todas las strings cuyos prefijos coincidan con cualquiera de los prefijos personalizados proporcionados en otra lista.
Entrada : test_list = [“geeks”, “peeks”, “meeks”, “leeks”, “mean”], pref_list = [“ge”, “ne”, “me”, “re”]
Salida : [‘geeks ‘, ‘meeks’, ‘mean’]
Explicación : geeks, meeks y mean tienen prefijos, ge, me y me respectivamente, presentes en la lista de prefijos.Entrada : test_list = [“geeks”, “peeks”, “meeks”, “leeks”, “mean”], pref_list = [“ge”, “le”, “me”, “re”]
Salida : [‘geeks ‘, ‘meeks’, ‘mean’, puerros]
Explicación : geeks, meeks, puerros y mean tienen prefijos, ge, me, me y le respectivamente, presentes en la lista de prefijos.
Método 1: usar la comprensión de listas , any() y beginwith()
En esto, verificamos que todos los elementos coincidan usando any() y beginwith() extrae todos los prefijos. La comprensión de listas se utiliza para iterar a través de todas las strings de la lista.
Python3
# initializing List test_list = ["geeks", "peeks", "meeks", "leeks", "mean"] # printing original list print("The original list is : " + str(test_list)) # initializing prefix list pref_list = ["ge", "ne", "me", "re"] # checking for all possible allowed prefixes using any() res = [ele for ele in test_list if any(ele.startswith(el) for el in pref_list)] # printing result print("The extracted prefix strings list : " + str(res))
Producción:
La lista original es: [‘geeks’, ‘peeks’, ‘meeks’, ‘leeks’, ‘mean’]
La lista de strings de prefijos extraídas: [‘geeks’, ‘meeks’, ‘mean’]
Método 2: Usar filter() , lambda , any() y beginwith()
Esto es similar al método anterior, la diferencia es que el filtrado se realiza mediante filter() y lambda.
Python3
# initializing List test_list = ["geeks", "peeks", "meeks", "leeks", "mean"] # printing original list print("The original list is : " + str(test_list)) # initializing prefix list pref_list = ["ge", "ne", "me", "re"] # checking for all possible allowed prefixes using any() # filtering using filter() and lambda res = list(filter(lambda ele: any(ele.startswith(el) for el in pref_list), test_list)) # printing result print("The extracted prefix strings list : " + str(res))
Producción:
La lista original es: [‘geeks’, ‘peeks’, ‘meeks’, ‘leeks’, ‘mean’]
La lista de strings de prefijos extraídas: [‘geeks’, ‘meeks’, ‘mean’]
La complejidad de tiempo y espacio para ambos métodos es la misma:
Complejidad de Tiempo : O(n 2 )
Espacio Auxiliar : O(n)
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