Saltar al contenido

Ordenar como en el trabajo

Python · Unidad 23: Buscar y ordenar

En el trabajo nadie escribe su propio ordenamiento: sorted ya viene hecho y probado. Lo que sí escribes es el criterio.

Para ordenar por dos cosas, la key regresa una tupla. Primero se compara lo primero y, solo si hay empate, lo segundo.

gente = [
    ("Ana", 3),
    ("Luis", 1),
    ("Sofía", 3),
]

def criterio(p):
    return (p[1], p[0])

print(sorted(gente, key=criterio))

Imprime

[('Luis', 1), ('Ana', 3), ('Sofía', 3)]

El resto de la explicación está en la lección, que es del plan completo.

Ejercicios de esta lección

Se hacen en la app, que los corrige al momento y explica por qué.

  1. 1. Predice la salida

    ¿Qué imprime este código?

  2. 2. Completa el código

    Completa para que vayan de más puntos a menos, y los empatados de la A a la Z.

  3. 3. Opción múltiple

    Quieres más puntos primero y, en empate, el nombre de la A a la Z. ¿Por qué no basta con reverse=True?

  4. 4. Encuentra el bug

    Debería imprimir las notas ordenadas, pero imprime None. ¿Qué línea tiene el error?

  5. 5. Predice la salida

    ¿Qué imprime este código?

  6. 6. Ordena las líneas

    Arma la función que regresa los nombres de más puntos a menos, y en empate de la A a la Z.

  7. 7. Predice la salida

    ¿Qué imprime este código?

  8. 8. Opción múltiple

    Ya sabes escribir la selección y el merge sort. ¿Cuándo conviene usarlos en un programa de verdad?

Hacer esta lección

Se abre en el navegador. Esta lección es del plan completo; la primera unidad de cada curso es gratis.

Ver todas las lecciones →