Encontrar una cadena en una lista en Python

Manav Narula 30 enero 2023
  1. Utilizar el bucle for para encontrar elementos de una lista que contengan una subcadena específica en Python
  2. Utilice la función filter() para encontrar elementos de una lista de Python que contengan una subcadena específica
  3. Usar las Expresiones Regulares para Encontrar Elementos de una Lista de Python que Contengan una Subcadena Específica
Encontrar una cadena en una lista en Python

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']
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python List