Python - anagrama python

 
Vista:
sin imagen de perfil
Val: 36
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por david (13 intervenciones) el 21/09/2020 17:07:18
Buenas tardes, estoy bloqueado con un ejercicio, por si me pueden ayudar.

El ejercicio consiste en:

tenemos una lista de palabras y un texto, pues usando "for", tenemos que obtener del texto, el primer anagrama de cualquiera de las palabras de mi lista.

adjunto algo de lo que yo habia hecho.

saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por joel (901 intervenciones) el 21/09/2020 18:56:46
Hola David, exactamente que es un "anagrama"?

Te has dejado de adjuntar tu código
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 36
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por david (13 intervenciones) el 21/09/2020 21:55:04
Hola perdona pero a mi si me sale el archivo adjunto, pero no pasa nada, lo vuelvo a subir. Ademas adjunto el enuncio donde dice lo que es un anagrama.


ejercicio-4
enunciado-ejercicio-4

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Patricio
Val: 209
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por Patricio (42 intervenciones) el 23/09/2020 00:23:08
Programa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def anagramas(pal1, pal2):
    l1 = list(pal1)
    l2 = list(pal2)
    l1.sort()
    l2.sort()
    return(l1 == l2)
 
def analizar(texto, lista):
    ltxt = texto.split(" ")
    for i in range(0, len(ltxt)):
        for j in range(0, len(lista)):
            if (anagramas(ltxt[i],lista[j])):
                return(ltxt[i])
    return("")
 
lista = ["cero", "mocasin", "conversacion", "cosa", "poder"]
texto = "la conversacion versaba sobre conservacion de obras de arte"
 
print(analizar(texto, lista))

Salida:

1
>>> conversacion

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 36
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por david (13 intervenciones) el 24/09/2020 11:04:04
Buenos días, muchísimas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Patricio
Val: 209
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por Patricio (42 intervenciones) el 25/09/2020 00:04:43
No olvides valorar la respuesta si te sirvió.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

anagrama python

Publicado por yoyyo (1 intervención) el 25/09/2020 02:18:58
veamos:
1) devolver la primer palabra que es anagrama, bueno ese código está incompleto, ya que si usas por ejemplo:
texto = "la conversacion y creo versaba sobre la conservacion de obras de arte"

devolverá conversación, donde conversación no es un anagrama de conversacion, es la misma palabra, en este caso el primer anagrama es obviamente creo, ya que es de cero

2)que ganas de escribir tanto código, se puede resumir:
1
2
3
4
5
6
7
8
lista = ["cero", "mocasin", "conversacion", "cosa", "poder"]
texto = "la conversacion y creo  versaba sobre la conservacion de obras de arte"
 
def anagramas(lista,texto):
    total=[x for x in texto.split() for j in lista if sorted(x) == sorted(j) and x != j]
    return f"Posibles anagramas son: {total}, la primera ocurrencia de la lista es: {total[0]}"
 
print(anagramas(lista, texto))

donde mostramos todas las posibilidades y claro la primer ocurrencia.

Saludos y no necesito ni quiero que valores la respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Patricio
Val: 209
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por Patricio (42 intervenciones) el 25/09/2020 04:12:17
Buenísimo el código, buen ejemplo, de hecho lo guardé (soy aprendiz).

Pero ¿dónde está la función "analizar" que se pide programar en el enunciado del problema?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

anagrama python

Publicado por yoyyo (1 intervención) el 25/09/2020 04:36:12
pues simplemente es la función anagrama con el nombre cambiado, es igual si se llama "pepito", no le estoy haciendo la tarea total, muestro la forma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 36
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por david (13 intervenciones) el 25/09/2020 13:44:47
Hola me parece que hay un error, porque la palabra del texto que es anagrama de una palabra de la lista es conservacion y el programa devuelve conversacion que es la misma palabra que aparece en el lista.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Patricio
Val: 209
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

anagrama python

Publicado por Patricio (42 intervenciones) el 25/09/2020 16:01:46
Cambiar la Línea 12 del código

Dice:

1
if (anagramas(ltxt[i],lista[j])):

Debe decir:

1
if (anagramas(ltxt[i],lista[j]) and (ltxt[i] != lista[j])):

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar