Programa Python para imprimir strings basadas en la lista de prefijos

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *