HOWTO · Python
Encontrar una cadena en una lista en Python
Este tutorial muestra cómo encontrar elementos con una subcadena específica en Python
En esta página
Este tutorial mostrará cómo encontrar elementos de una lista en Python que tengan una subcadena específica.
Trabajaremos con la siguiente lista y extraeremos las cadenas que tengan ack en ellas.
my_list = ["Jack", "Mack", "Jay", "Mark"]
Utilizar el bucle for para encontrar elementos de una lista que contengan una subcadena específica en Python
En este método, iteramos a través de la lista y comprobamos si la subcadena está presente en un elemento concreto o no. Si la subcadena está presente en el elemento, entonces la almacenamos en la cadena. El siguiente código muestra cómo:
str_match = [s for s in my_list if "ack" in s]
print(str_match)
Producción :
['Jack', 'Mack']
La palabra clave in comprueba si la cadena dada, "ack" en este ejemplo, está presente en la cadena o no. También se puede sustituir por el método __contains__, que es un método mágico de la clase string. Por ejemplo:
str_match = [s for s in my_list if s.__contains__("ack")]
print(str_match)
Producción :
['Jack', 'Mack']
Utilice la función filter() para encontrar elementos de una lista de Python que contengan una subcadena específica
La función filter() recupera un subconjunto de datos de un objeto dado con la ayuda de una función. Este método utilizará la palabra clave lambda para definir la condición para filtrar los datos. La palabra clave lambda crea una función lambda de una sola línea en Python. Vea el siguiente fragmento de código.
str_match = list(filter(lambda x: "ack" in x, my_list))
print(str_match)
Producción :
['Jack', 'Mack']
Usar las Expresiones Regulares para Encontrar Elementos de una Lista de Python que Contengan una Subcadena Específica
Una expresión regular es una secuencia de caracteres que puede actuar como un patrón de coincidencia para buscar elementos. Para utilizar expresiones regulares, tenemos que importar el módulo re. En este método, utilizaremos el bucle for y el método re.search(), que se utiliza para devolver un elemento que coincida con un patrón específico. El siguiente código explica cómo hacerlo:
import re
pattern = re.compile(r"ack")
str_match = [x for x in my_list if re.search("ack", x)]
print(str_match)
Producción :
['Jack', 'Mack']