← Volver

Cómo ordenar una lista o tupla

La función incorporada sorted() toma como argumento cualquier objeto iterable y retorna una lista con los elementos ordenados de menor a mayor, según una función key que les asigna un valor numérico a cada uno de ellos.

>>> sorted([2, 3, 1])
[1, 2, 3]

El parámetro reverse puede emplearse para que el orden resulte de mayor a menor.

>>> sorted([2, 3, 1], reverse=True)
[3, 2, 1]

El argumento key, propiamente dicho, debe ser una función que tome un elemento como argumento y retorne un valor numérico que será considerado para ordenar dicho elemento respecto del resto. Por ejemplo, para ordenar una lista de cadenas de menor a mayor según la cantidad de caracteres, utilizamos la función incorporada len().

>>> sorted(["Python", "Java", "C", "C++"], key=len)
['C', 'C++', 'Java', 'Python']

Del mismo modo, el siguiente código ubica los números pares de una lista al comienzo y el resto al final.

>>> def es_par(n):
... return n % 2 == 0
...
>>> sorted(range(10), key=es_par, reverse=True)
[0, 2, 4, 6, 8, 1, 3, 5, 7, 9]

Por cuanto es_par(n) retorna True (1) si n es par y False (0) en caso contrario.

¿Alguna duda sobre este código? ¡Preguntanos en el foro!