Encuentra personajes en varias cadenas. Tengo una cadena dada como en el bloque de código a continuación, no obtengo ningún resultado, estoy seguro de que está tratando de encontrar una palabra completa en la lista, estoy buscando algunos caracteres (algo como comodines) No quiere usar cualquier biblioteca para esto.

findChar = 'an'
a, b, c, d, e =  'Australia', 'Canada', 'Denmark', 'Finland', 'Germany'
countries = ['Australia', 'Canada', 'Denmark', 'Finland', 'Germany']

if findChar in countries:
    print(f' characters {findChar} is available.')

Si utilizo el siguiente código, funciona solo para 1 cadena y no para todos

if findChar in b:  #How to use (a,b,c,d,e)? 
    print(f' characters {findChar} is available.')

Puedo obtener el resultado pero lo necesito de una manera simple

if any(str in words for words in (a,b,c,d,e) for str in ('an')):
    print(f' characters {findChar} is available.') 

¿Cómo puedo hacer esto? Se agradece cualquier ayuda. Gracias por adelantado

0
Pavn 27 feb. 2021 a las 08:39

2 respuestas

La mejor respuesta

En el bucle for, debe verificar usando in para cada elemento list

findChar = 'an'
#a, b, c, d, e =  'Australia', 'Canada', 'Denmark', 'Finland', 'Germany'
countries = ['Australia', 'Canada', 'Denmark', 'Finland', 'Germany']

for each_country in countries: # this will give you each list element
    if(findChar in each_country): # check is findChar exists in that country
        print(f' characters {findChar} is available in the country {each_country}')

Salida

 characters an is available in the country Canada
 characters an is available in the country Finland
 characters an is available in the country Germany
1
Epsi95 27 feb. 2021 a las 05:43

Mi solución usando filtro:

findChar = 'an'
countries = ['Australia', 'Canada', 'Denmark', 'Finland', 'Germany']
result = list(filter(lambda x: findChar in x, countries))

for item in result:
    print(f' characters {findChar} is available in {item}.')
0
maziyank 27 feb. 2021 a las 06:09