Capítulo 17 - Ordenar elementos con sort() y sorted() - Listas 8

Curso de Python desde cero


Penúltimo capítulo del bloque dedicado a listas en Python.
En este capítulo aprenderás a ordenar elementos en tus listas en orden alfabético con el método sort().
Simplemente, pon el nombre de la lista seguido de un .sort() y esta se ordenará alfabeticamente en orden ascendente (a-z).

Código

colores = ['rojo', 'azul', 'verde', 'amarillo']
colores.sort()
print(colores)

Resultado

['amarillo', 'azul', 'rojo', 'verde']

Si lo prefieres en orden descendente (z-a) lo puedes hacer añadiendo un reverse=True dentro de los paréntesis del método sort().
¡Ojo! el True solo funciona si lo escribes con la T mayúscula.

Código

colores = ['rojo', 'azul', 'verde', 'amarillo']
colores.sort(reverse=True)
print(colores)

Resultado

['verde', 'rojo', 'azul', 'amarillo']

En teoría, esto puede parecer muy útil y lo es, pero es muy fácil cometer errores, mira el siguiente ejemplo:

Código

colores = ['rojo', 'azul', 'verde', 'amarillo']
colores.sort(reverse=True)
print(colores[0])

Resultado

¿Por qué me está saliendo verde en la posición 0?
Esto ocurre, porque tenemos antes el ordenamiendo con sort(), pero claro, en mi código estoy viendo el orden anterior a esto. (Si no lo entiendes muy bien, mira el vídeo y seguro que lo entenderás mejor).
Todo esto indica que los cambios de sort() son permanentes. Si no quieres esto, puedes utilizar en un print otro método parecido, sorted()

verde

Código

¡Cuidado con los paréntesis, fíjate que sorted() lleva los suyos propios!

colores = ['rojo', 'azul', 'verde', 'amarillo']
print(sorted(colores))
print(colores)

Resultado

Por un lado, primero tenemos el print() "temporal" y después vemos, que el efecto de sorted() solo afecta a la propia línea.

['amarillo', 'azul', 'rojo', 'verde']
['rojo', 'azul', 'verde', 'amarillo']

Ejercicios de Python

32- Ordena la siguiente lista en orden alfabético descendente (de la letra 'z' a la 'a').

colores = ['rojo', 'azul', 'verde', 'amarillo', 'marrón', 'lila', 'negro', 'rosa', 'blanco', 'naranja']

Recuerda que aunque no te lo pida, puedes y debes utilizar siempre print() para ir probando los resultados de todos los ejercicios.

Tendrás la solución a estos ejercicios en el siguiente capítulo. Puedes dejar tu posible solución en los comentarios, así ayudarás a otros o te podremos ayudar entre todos.

Solución del capítulo anterior

31- Añade a la siguiente lista los colores 'magenta' y 'turquesa' utilizando insert(). Tendrás que posicionar 'magenta' en la posición siguiente a la de 'lila' y 'turquesa' en la penúltima posición. Deberás hacer esto utilizando posiciones de lista negativas.

colores = ['rojo', 'azul', 'verde', 'amarillo', 'marrón', 'lila', 'negro', 'rosa', 'blanco', 'naranja']

colores.insert(-4, 'magenta')
colores.insert(-1, 'turquesa')

print(colores)

Nota: el resultado puede variar según como lo hayas hecho, si te queda alguna duda, comenta tu solución y la revisaré.


Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


Comentarios

Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.