Hola, tengo dos problemas. random.choice() no me funciona y devuelve la lista de caracteres completa. Además cuando ejecuto “”.join(contr...

Iván Cárdenas

Iván Cárdenas

Pregunta
studenthace 4 años

Hola, tengo dos problemas. random.choice() no me funciona y devuelve la lista de caracteres completa. Además cuando ejecuto “”.join(contrasena) me sale el siguiente error:

TypeError: sequence item 0: expected str instance, list found

Alguien sabe que estoy haciendo mal?

Acá mi código

import random, string def generar_contrasena(): mayus= list(string.ascii_uppercase) minus= list(string.ascii_lowercase) simbols= list(string.punctuation) numbers = list(string.digits) character = [mayus+minus+simbols+numbers] contrasena= [] for i in range(15): character_random=random.choice(character) contrasena.append(character_random) contrasena="".join(contrasena) return contrasena def run(): contrasena=generar_contrasena() print('Tu nueva contraseña es:'+ contrasena) if __name__ == "__main__": run()```
1 respuestas
para escribir tu comentario
    Juan Manuel Fernandez Ceballos

    Juan Manuel Fernandez Ceballos

    studenthace 4 años

    Hola,

    Cuando haces la "suma" o unión de elementos del mismo tipo el resultado va a ser un elemento nuevo del mismo tipo, es decir si "sumas" o unes elementos de tipo list el resultado va a ser un list.

    El error se presenta por que python no puede encontrar un iterable para realizar el join, debido a que declaraste la variable character como lista y esto te va a dar como resultado no una lista si no una lista de lista, entonces al hacer esto: lista.PNG

    python crea una lista con 1 solo elemento que es la union de tus listas

    ejemplo: ejemplo_lista.PNG el resultado va a ser: result_listas.PNG como ves union_lista es una lista con una lista dentro, es decir una lista con un elemento tipo lista

    pero al declarar la variable de la siguiente forma: l_bien.PNG el resultado sería una lista con con 6 elemtos (la suma o union de lista_a + lista_b): bien.PNG

Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.

Curso Básico de Python [Empieza Gratis]
Curso Básico de Python [Empieza Gratis]

Curso Básico de Python [Empieza Gratis]

Aprende a programar desde cero con el lenguaje de mayor crecimiento en el planeta: Python. Descubre qué es un algoritmo y cómo se construye uno. Domina las variables, funciones, estructuras de datos, los condicionales y ciclos.