Python - Lección 9: Ejercicio con secuencias

Ahora vamos a comenzar con el segundo desafío de este curso.
Recuerden que si no entienden el enunciado o algo de lo que hayamos visto, pueden escribirme por privado.

Enunciado:

Dadas las siguientes listas:

distros_principales = ['Debian',  'Fedora',  'Arch Linux']
distros_basadas = ['RockyLinux', 'Mint', 'Manjaro']

La primer lista contiene a cada una de las tres principales distribuciones de Linux desde donde se basan la mayoría del resto de distribuciones y la segunda lista, contiene distribuciones que derivan de una de las tres listadas anteriormente.
Punto 1: Agrupen ambas listas en una sóla tupla, en donde cada elemento de la primer lista, corresponda al elemento de la segunda lista.
Punto 2: Muestren el resultado utilizando formato y saltos de línea.

Pista: Si ordenan alfabéticamente cada lista, verán que las distribuciones se relacionan entre sí.

Recuerden que pueden compartir el código que desarrollaron.

<Tema anterior - Tema siguiente>

1 me gusta

Aquí les comparto el código de la forma que lo hice, espero les ayude o si me falta algo me avisan por favor

distros_principales = ['Debian', 'Red Hat', 'Arch Linux']
distros_basadas = ['RockyLinux, ', 'Mint, ', 'Manjaro, ']


print("===========LISTAS====================")
print(distros_principales)
print(distros_basadas)


print("===========LISTAS ORDENADAS====================")
distros_principales.sort()
distros_basadas.sort()
print(distros_principales)
print(distros_basadas)


print("========LISTAS UNIDAS y ORDENADAS====================")
unidas =  [
                    (distros_basadas[0] + distros_principales[0]),
                    (distros_basadas[1] + distros_principales[1]),
                    (distros_basadas[2] + distros_principales[2]),
]

unidas.sort()
print(unidas)

for u in unidas:
    print("-",u)
2 Me gusta

Buenísimo! Bien ahí por animarte a compartir :ok_hand:t3::ok_hand:t3:

Comparto mi solución:

distros_principales = ['Debian', 'Fedora', 'Arch Linux']

distros_basadas = ['RockyLinux', 'Mint', 'Manjaro']

distros_principales.sort()

distros_basadas.sort()

distros_unidos=(distros_principales[0]+' '+distros_basadas[0],distros_principales[1]+' '+distros_basadas[1],distros_principales[2]+' '+distros_basadas[2])

print('Tupla de las distros Linux:\n')

print(f'Distro 1: {distros_unidos[0]}\nDistro 2: {distros_unidos[1]}\nDistro 3: {distros_unidos[2]}')

He aquí el resultado:

distros_principales = ['Debian',  'Fedora',  'Arch Linux']
distros_basadas = ['RockyLinux', 'Mint', 'Manjaro']
distros_principales.sort()
distros_basadas.sort()
print(f'Dupla de distros principales y basadas en las mismas, ordenadas:\n{list(zip(distros_principales, distros_basadas))}')
print("_______________________")
print(f'Principal Basada\n{list(zip(distros_principales, distros_basadas))[0]}\n{list(zip(distros_principales, distros_basadas))[1]}\n{list(zip(distros_principales, distros_basadas))[2]}')

Y el terminal responde esto:

Dupla de distros principales y basadas en las mismas, ordenadas:
[('Arch Linux', 'Manjaro'), ('Debian', 'Mint'), ('Fedora', 'RockyLinux')]
_______________________
Principal Basada
('Debian', 'Mint')
('Fedora', 'RockyLinux')
('Arch Linux', 'Manjaro')

Puedo sacar un resultado más “bonito” si extraigo la información de las listas una a una usando índices, pero no consigo sacar esa información “limpia” de una lista dentro de una tupla (ni de ninguna otra anidación), tipo tupla[0[1]], por ejemplo.
Veo que una de las respuestas incluye un for, pero como aún no he llegado a esa parte del curso no he querido liarme demasiado.
También probé a ordenar los datos “a mano”, descomponiendo la lista y creando una nueva:

bas1, bas2, bas3=distros_basadas
distros_basadas2=[bas2, bas1, bas3]
print(list(zip(distros_principales, distros_basadas2)))

…pero el ejercicio exigía usar sort(), así que…

P.D.: ¿Este foro no permite cambiar el color de letra y fondo de un texto? Estaría bien para distinguir entre código y salida de terminal, por ejemplo. Es algo que siempre hago con mis apuntes y ayuda mucho a distinguir entradas de salidas.

EDITO: Copié una versión anterior del ejercicio en la que usaba una variable intermedia. Corregido.