Python | Encontrar strings con una substring dada en la lista

El problema clásico que Python puede manejar con bastante facilidad y que también se ha tratado muchas veces es encontrar si una string es una substring de otra. Pero a veces, uno desea extender esto en la lista de strings y, por lo tanto, requiere atravesar todo el contenedor y realizar el algoritmo genérico.

Analicemos ciertas formas de encontrar strings con una substring dada en la lista.

Método #1: Usar la comprensión de listas La comprensión
de listas es una forma elegante de realizar cualquier tarea en particular, ya que aumenta la legibilidad a largo plazo. Esta tarea se puede realizar utilizando un método ingenuo y, por lo tanto, también se puede reducir a la comprensión de la lista.

# Python code to demonstrate 
# to find strings with substrings 
# using list comprehension 
  
# initializing list 
test_list = ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# initializing substring
subs = 'Geek'
  
# using list comprehension 
# to get string with substring 
res = [i for i in test_list if subs in i]
  
# printing result 
print ("All strings with given substring are : " + str(res))
Producción:

The original list is : ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
All strings with given substring are : ['GeeksforGeeks', 'Geeky']

 
Método #2: Usando filter()+ lambda
Esta función también puede realizar esta tarea de encontrar las strings con la ayuda de lambda. Simplemente filtra todas las strings que coinciden con la substring en particular y luego la agrega en una nueva lista.

# Python code to demonstrate 
# to find strings with substrings 
# using filter() + lambda
  
# initializing list 
test_list = ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# initializing substring
subs = 'Geek'
  
# using filter() + lambda 
# to get string with substring 
res = list(filter(lambda x: subs in x, test_list))
  
# printing result 
print ("All strings with given substring are : " + str(res))
Producción:

The original list is : ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
All strings with given substring are : ['GeeksforGeeks', 'Geeky']

 
Método n. ° 3: el usore + search()
de expresiones regulares se puede usar para realizar muchas tareas en python. Para realizar esta tarea en particular también, las expresiones regulares pueden ser útiles. Encuentra todas las substrings coincidentes usando search()y devuelve el resultado.

# Python code to demonstrate 
# to find strings with substrings 
# using re + search()
import re
  
# initializing list 
test_list = ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
  
# printing original list 
print ("The original list is : " + str(test_list))
  
# initializing substring
subs = 'Geek'
  
# using re + search()
# to get string with substring 
res = [x for x in test_list if re.search(subs, x)]
  
# printing result 
print ("All strings with given substring are : " + str(res))
Producción:

The original list is : ['GeeksforGeeks', 'Geeky', 'Computers', 'Algorithms']
All strings with given substring are : ['GeeksforGeeks', 'Geeky']

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 *