Espacio publicitario (banner)
AD

¿Ya dominas lo básico? Un curso estructurado de Python es la vía rápida para dar el salto.

Ver cursos de Python en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐍Lecciones de Python
Lección 30 / 69

Funciones de orden superior (pasar una función como argumento)

En esta lección verás la idea de función de orden superior en Python, para escribir código flexible pasando una función como argumento. Está pensada para quien busca «funciones de orden superior en Python» o «argumento key de sorted en Python».

Poder pasar una función como argumento de otra se llama función de orden superior. Piénsalo como «indicar solo cómo debe hacerse el trabajo y dejar que otro lo haga». Pasar un criterio de comparación a sorted() es el ejemplo clásico. El map() que viste antes también es en realidad una función de orden superior, ya que acepta una función como argumento.

El código de ejemplo define una función, by_descending, y la pasa como argumento key, así: sorted(nums, key=by_descending). La ordenación se basa en el valor que devuelve la función pasada a key; también es habitual escribirlo de forma concisa como una lambda, por ejemplo key=lambda n: -n.

Un error habitual al empezar es malinterpretar la relación entre el argumento key de sorted() y el orden resultante. La función que pasas a key devuelve «el valor que se usa para ordenar»; no es una función que decida directamente el orden. También existe la opción reverse=True si solo quieres orden descendente.

En cuanto sabes escribir tus propias funciones de orden superior, resulta mucho más fácil empaquetar y reutilizar la lógica común. Es una de las ideas clave del Python moderno y se aprovecha en todo tipo de tareas de procesamiento de datos.

Python
SALIDA

💡 El motor de Python puede tardar unos segundos en cargarse la primera vez que ejecutas código.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)