La practica hace al maestro. 7


#1




Hola, queriá saber las siguientes cosas:
¿Por qué return solo me devuelve la primer letra de la lista texto[i]?
"¡Uy! Probá otra vez. Tu función falla en reverse("Python!) Donde tu función devuelve: "!" Cuando debería devolver: "!nohtyP" "

¿Cómo hago para concatenar los elementos de la lista si con .join no lo hace?

Desde ya, gracias!

def reverse(texto):
    for i in range(len(texto) - 1,-1,-1):
        return "".join(texto[i])


#2

    return ''.join(texto)

No index.


#3

Lo correcto sería, al recorrer en el for la palabra, cada letra que tomas la colocas dentro de una lista (que debes crear), y cuando el for finaliza y tienes todas las letras (en el orden inverso) dentro de esta lista, la devuelves (return) utilizando el join.


#4

Precisamente. No tendríamos que unir texto, ya es una cadena.


#5

Hola, gracias por la respuesta.
Cuando saco el índice (i), siguiendo lo que me contestaste, sólo retornaría el texto sin modificación alguna, ¿eso es lo que me querías decir, o que no puedo usar índice cuando uso return?


#6

Ya sea una cadena o una lista, index [i] es sólo un elemento / carácter, y como lo está devolviendo, sólo se devuelve un carácter.

Utilice su bucle para construir una lista, luego cuando el bucle esté terminado, use ''.join(temp_list). temp_list (o cualquier nombre que elija) debe definirse como una lista vacía antes del bucle.

Whether a string or a list, index[i] is only one element/character, and since you are returning it, only one character is returned.

Use your loop to build a list, then when the loop is finished, use ''.join(temp_list). temp_list (or whatever name you choose) needs to be defined as an empty list before the loop..