Curso de Python desde cero

El uso de los métodos sort() y sorted() para ordenar listas Python

Capítulo 17: Ordenar elementos de listas con sort() y sorted()

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() y a utilizar también sorted().

El método sort() de Python

Empecemos por el método sort() de Python.
Simplemente, pon el nombre de la lista seguido de un .sort() y esta se ordenará alfabéticamente en orden ascendente (a-z).

colores = ['rojo', 'azul', 'verde', 'amarillo']
colores.sort()
print(colores)
['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().
¡Atención! el True solo funciona si lo escribes con la letra T mayúscula.

colores = ['rojo', 'azul', 'verde', 'amarillo']
colores.sort(reverse=True)
print(colores)
['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:

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

¿Por qué me está saliendo verde en la posición 0?
Esto ocurre, porque tenemos antes el ordenamiento 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
 ¡Cuidado con los paréntesis, fíjate que sorted() lleva los suyos propios!
colores = ['rojo', 'azul', 'verde', 'amarillo']
print(sorted(colores))
print(colores)

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

  1. Ordena la siguiente lista en orden alfabético descendente (de la letra 'z' a la 'a').
  2. colores = ['rojo', 'azul', 'verde', 'amarillo', 'marrón',
    'lila', 'negro', 'rosa', 'blanco', 'naranja']

La solución la encontrarás aquí: Ejercicios resueltos de Python.

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.

Programación Fácil YouTube

Suscríbete

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.