Python: ¿puedo colorear cadenas que están dentro de una lista?

CorePress2024-01-25  12

En primer lugar, me gustaría aclarar que al momento de escribir esto soy un completo novato en Python y en la programación en general, recién comencé a usar Python ayer.

Estoy aprendiendo el idioma mientras trabajo en un proyecto personal.

Mi código toma números del 1 al 5, los ejecuta a través de un método random.choices y los pesa, luego devuelve una lista aleatoria que se vería así:

[2,1,4,5,2] Llamemos a esta lista xs

Cada uno de esos números tiene una lista de cadenas asociadas, llamémoslos "xsn"

Entonces 1 tiene xs1 = ['1stringA','1stringB',...,'1stringZ'], lo mismo con 2,3,4 y 5

Luego ejecuto xs a través de este código

while True:
    for i in range(5):
        if xs[i] == 1:
            xs[i] = (random.choice(xs1))
        if xs[i] == 2:
            xs[i] = (random.choice(xs2))
        if xs[i] == 3:
            xs[i] = (random.choice(xs3))    [Tips on how to improve this code are also accepted and apreciated]
        if xs[i] == 4:
            xs[i] = (random.choice(xs4))
        if xs[i] == 5:
            xs[i] = (random.choice(xs5))
    print(xs)

Esto me dará una lista xs modificada que, en lugar de números del 1 al 5, tiene cadenas. Así que si el último lfue

[2,1,4,5,2]

La nueva lista xs sería

['2cadenaA','1cadenaA','4cadenaA','5cadenaA','2cadenaB']

Lo que quiero es que cada número también tenga su propio color asociado, por lo que '2stringA' y '2stringB' serían verdes, '1stringA' serían blancos y así sucesivamente.

¿Alguna idea sobre cómo hacer que esto suceda? Perdón por escribir una publicación tan larga, a medida que mejore espero poder resumir mis preguntas de una manera más condensada.

Repita el tema y Cómo preguntar del recorrido. "Enséñame esta característica básica del lenguaje" está fuera deimagen para desbordamiento de pila. Debe hacer un intento honesto de encontrar la solución y luego hacer una pregunta específica sobre su implementación. Stack Overflow no pretende reemplazar los tutoriales y la documentación existentes.

-TigerhawkT3

28 de marzo de 2021 a las 3:32

Básicamente, haber empezado a aprender Python ayer significa que deberías leer tutoriales, no pedirle a la gente que te dé código. De lo contrario, tu proyecto será escrito por otras personas y este no es el lugar para eso.

-TigerhawkT3

28 de marzo de 2021 a las 3:33

Sí, creo que tienes la idea correcta. Mañana miraré algunos tutoriales y me informaré.

-Goako

28 de marzo de 2021 a las 5:07



------------------------------------

No estoy seguro de haber entendido correctamente, pero prueba este código

from colorama import Fore

while True:
    for i in range(5):
        if xs[i] == i:
            xs[i] = Fore.GREEN + random.choice(xs + i)

1

1

Gracias por la respuesta, no funcionó pero me dio algunas ideas sobre lo que debería mirar, muy apreciado.

-Goako

28 de marzo de 2021 a las 5:02



------------------------------------

Tu pregunta no está muy clara. Voy a suponer que deseas imprimir el código en diferentes colores. Hay varias bibliotecas para eso, como termcolor, colorama y coloured

Además, puede crear una lista anidada (xsn = [[], xs1, xs2, xs3, etc]), o un diccionario (xsn = {1: xs1, 2: xs3, etc, etc}), para que Tendría algo como xs[i] = random.choice(xsn[i]) en lugar de if xs[i]: do salgo bloquea,

También podrías hacer algo como comprensión de listas, pero como dices que ayer comenzaste con Python, puede que esa no sea la mejor idea. Pero si decides usarlo, se vería algo así como new_xs = [random.choice(xsn[i]) for i in xs]

2

"Tu pregunta no está muy clara" entonces no contestes. Solicite una aclaración en un comentario.

-TigerhawkT3

28 de marzo de 2021 a las 3:59

Sí, veo que mi pregunta no es tan clara. Aún así, analizaré las herramientas que mencionaste y veré cómo puedo implementarlas. Gracias por los consejos también :)

-Goako

28 de marzo de 2021 a las 5:03



------------------------------------

Logré resolverlo, ahora se ve así, si alguien está interesado en saber cómo lo hice, deje su respuesta, pero estoy bastante contento con cómo terminó :^)

Si juegas TFT, puedes adivinar lo que estoy haciendo

Compartir mejorar esta respuesta Seguir Respondido

28 de marzo de 2021 a las 14:50

Goako

Goako

17

1

1 insignia de bronce

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare