Python – Filtrar strings de supersecuencia

Dada una lista de strings y una substring, la tarea es escribir un programa de Python para extraer todas las strings que tienen todos los caracteres que se pueden usar para hacer una substring.

Ejemplos:

Entrada: test_list = [“gfg”, “/”, “geeksforgeeks”, “best”, “for”, “geeks”], substr = “kgs”

Salida: [“geeksforgeeks”, “geeks”]

Explicación: todos los caracteres kgs están presentes en ambas strings.

Entrada: test_list = [“gfg”, “/”, “geeksforgeeks”, “best”, “for”, “geeks”], substr = “kgf”

Salida : [“geeksforgeeks”]

Explicación: todos los caracteres kgs están presentes solo en la string geeksforgeeks.

Método 1: Usar all() + comprensión de lista

En esto, verificamos la presencia de todos los caracteres en la string usando all(). La iteración de strings se realiza mediante comprensión de listas.

Python3

# Python3 code to demonstrate working of
# Filter Supersequence Strings
# Using all() + list comprehension
  
# initializing list
test_list = ["gfg", "/", "geeksforgeeks", "best", "for", "geeks"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing substr
substr = "kgs"
  
# all() checks for all characters in strings
res = [sub for sub in test_list if all(ele in sub for ele in substr)]
  
# printing result
print("Filtered strings : " + str(res))

Producción:

La lista original es: [‘gfg’, ‘/’, ‘geeksforgeeks’, ‘best’, ‘for’, ‘geeks’]

Strings filtradas: [‘geeksforgeeks’, ‘geeks’]

Método #2: Usar filter() + all()

En esto, realizamos la tarea de filtrar usando filter() y la función lambda en lugar de la lista de comprensión y los condicionales usados ​​en el método superior.

Python3

# Python3 code to demonstrate working of
# Filter Supersequence Strings
# Using filter() + all()
  
# initializing list
test_list = ["gfg", "/", "geeksforgeeks", "best", "for", "geeks"]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing substr
substr = "kgs"
  
# all() checks for all characters in strings
res = list(filter(lambda sub: all(ele in sub for ele in substr), test_list))
  
# printing result
print("Filtered strings : " + str(res))

Producción:

La lista original es: [‘gfg’, ‘/’, ‘geeksforgeeks’, ‘best’, ‘for’, ‘geeks’]

Strings filtradas: [‘geeksforgeeks’, ‘geeks’]

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 *