Duda en python: comparar resultado de split.

Iniciado por k41z3r, 24 Marzo 2021, 14:55 PM

0 Miembros y 1 Visitante están viendo este tema.

k41z3r

Buenas. Lo primero pedir disculpas por una consulta como esta, probablemente es muy fácil de solucionar pero estoy aprendiendo y por más que he usado los buscadores no encuentro la forma correcta de hacerlo.

Tengo una lista, por ejemplo, "LUGARES", y una variable "respuesta" con entrada para el usuario:

LUGARES = ["casa", "coche", "calle", "campo", "playa", "montaña"]
respuesta = input ("¿Dónde te sientes más cómod@?: ")


Suponiendo que el usuario pueda responder con cualquier combinación de palabras, ¿cómo puedo separar cada palabra y comparar por si UNA (o al menos una) coincide con mi lista "LUGARES"?
(Por si por ejemplo el usuario introduce: "Me siento mejor en la playa", de la comparación por valida).

Leyendo he encontrado el comando split que intuyo que es parte de la respuesta, pero me pierdo a la hora de especificar que es suficiente con que coincida UNO de esos splits y no todos.

¿Alguien puede aclararme la duda? Gracias!!
Alto, guapo, delgado, inteligente, carismático, deportista y millonario. Así es Keanu Reeves. Yo soy K41z3r.

pery_soy

Hola!

seria algo asi:

for i in respuesta.split():
    if i in LUGARES:
        print(f'{i} en LUGARES')


saludos !

K-YreX

Python puede llegar a ser tan compacto...
Código (python) [Seleccionar]

palabras = ["casa", "coche", "calle"]
respuesta = input("Escribe una frase con alguna de estas palabras " + str(palabras) + ": ")
valido = any(palabra in respuesta for palabra in palabras)
print("Correcto!!" if valido else "Incorrecto...")
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

k41z3r

Acabo de probar ambas opciones y las dos son interesantes.


Cita de: pery_soy en 24 Marzo 2021, 19:52 PM

for i in respuesta.split():
   if i in LUGARES:
       print(f'{i} en LUGARES')

Esta me devuelve como valor de "i" un string exacto a la palabra repetida.


Cita de: K-YreX en 24 Marzo 2021, 21:12 PM
Código (python) [Seleccionar]

palabras = ["casa", "coche", "calle"]
respuesta = input("Escribe una frase con alguna de estas palabras " + str(palabras) + ": ")
valido = any(palabra in respuesta for palabra in palabras)
print("Correcto!!" if valido else "Incorrecto...")

Y esta me devuelve un booleano con valor "True" para la variable "valido".

Dos formas diferentes de conseguir mi propósito ;-) Gracias a ambos!!
Alto, guapo, delgado, inteligente, carismático, deportista y millonario. Así es Keanu Reeves. Yo soy K41z3r.