Python elemento IN lista de strings

publicado por: Anonymous

tengo la siguiente lista y string:

lis = ['ejemplo 1', 'ejemplo 2', 'cualquier cosa']
palabra = 'ejemplo'

Pero cuando hago

palabra in lis

Me retorna False. ¿A qué se debe? ¿Cómo puedo solucionarlo?

solución

Eso ocurre porque estas buscando en la lista y la cadena 'ejemplo' no está en la lista como tal. Tal y como lo tienes se compara tu string palabra por cada elemento de la lista.

Lo que quieres es ver si la subcadena palabra está dentro de las cadenas contenidas en la lista. Para ello debes buscarla dentro de cada elemento de la lista. Puedes usar any para ello:

>>> lis = ['ejemplo 1', 'ejemplo 2', 'cualquier cosa']
>>> palabra = 'ejemplo'
>>> any(palabra in string for string in lis)

Puedes seguir la misma lógica para hacer otras cosas:

Si queres saber el número de veces que aparece puedes usar :

>>> sum(palabra in string for string in lis)

Si deseas ver que cadenas son y el indice que ocupan en la lista puedes usar enumerate():

lis = ['ejempl2o 1', 'ejempl2o 2', 'cualquier cosa']
palabra = 'ejemplo'
res = [(indice, string)for indice, string in enumerate(lis) if palabra in string]
print(res)

Nos retorna:

>>> [(0, 'ejemplo 1'), (1, 'ejemplo 2')]
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *