Última actualización: 04 de diciembre de 2023

5.3. Funciones avanzadas

En Python hay varias funciones avanzadas que se describen a continuación:

5.3.1. Funciones de predicado

Las funciones de predicado no es más que una función la cual dice si algo es True o False, es decir, es una función que devuelve un tipo de datos booleano.

5.3.2. Funciones anónimas

Una función anónima, como su nombre indica es una función sin nombre. Es decir, es posible ejecutar una función sin referenciar un nombre, en Python puede ejecutar una función sin definirla con def.

De hecho son similares pero con una diferencia fundamental, el contenido de una función anónima debe ser una única expresión en lugar de un bloque de acciones.

Las funciones anónimas se implementan en Python con las funciones o expresiones lambda, esta es unas de las funcionalidades más potentes de Python, pero a la vez es la más confusas para los principiantes.

Más allá del sentido de función que usted tiene hasta el momento, con su nombre y sus acciones internas, una función en su sentido más trivial significa realizar algo sobre algo. Por tanto se podría decir que, mientras las funciones anónimas lambda sirven para realizar funciones simples, las funciones definidas con def sirven para manejar tareas más extensas.

5.3.3. Expresión lambda

Si deconstruye una función sencilla, puede llegar a una función lambda. Por ejemplo la siguiente función es para doblar un valor de un número:

>>> def doblar(numero):
...     resultado = numero * 2
...     return resultado
...

>>> doblar(2)
4
>>> type(doblar)
<type 'function'>

Si el código fuente anterior se simplifica se verá, de la siguiente forma:

>>> def doblar(numero):
...     return numero * 2
...

>>> doblar(2)
4
>>> type(doblar)
<type 'function'>

Usted puede todavía simplificar más, escribirlo todo en una sola línea, de la siguiente forma:

>>> def doblar(numero):
...     return numero * 2
...

>>> doblar(2)
4
>>> type(doblar)
<type 'function'>
>>> lambda numero: numero * 2
<function <lambda> at 0x7f1023944e60>

Esta notación simple es la que una función lambda intenta replicar, observe, a continuación se va a convertir la función en una función anónima:

>>> lambda numero: numero * 2
<function <lambda> at 0x7f1023944e60>

En este ejemplo tiene una función anónima con una entrada que recibe numero, y una salida que devuelve numero * 2.

Lo único que necesita hacer para utilizarla es guardarla en una variable y utilizarla tal como haría con una función normal:

>>> doblar = lambda numero: numero * 2
>>> doblar(2)
4
>>> type(doblar)
<type 'function'>

Con la flexibilidad de Python usted puede implementar infinitas funciones simples. Usted puede encontrar más ejemplos de funciones anónimas usando lambda en la sección ejemplos de funciones avanzadas.

Usted puede explotar al máximo la función lambda utilizándola en conjunto con otras funciones como filter() y map().

5.3.4. Ejemplos de funciones avanzadas

A continuación, se presentan algunos ejemplos de su uso:

Función lambda - operaciones aritméticas

A continuación, se presenta un ejemplo para comprobar si un número es impar:

>>> impar = lambda numero: numero % 2 != 0
>>> impar(5)
True

Función lambda - operaciones de cadena

A continuación, se presenta un ejemplo para darle la vuelta a una cadena rebanándola en sentido inverso:

>>> revertir = lambda cadena: cadena[::-1]
>>> revertir("Plone")
'enolP'
>>> revertir("enolP")
'Plone'

Función lambda - varios parámetros

A continuación, se presenta un ejemplo para varios parámetros, por ejemplo para sumar dos números:

>>> sumar = lambda x, y: x + y
>>> sumar(5, 2)
7

Ver también

Consulte la sección de lecturas suplementarias del entrenamiento para ampliar su conocimiento en esta temática.


¿Cómo puedo ayudar?

¡Mi soporte está aquí para ayudar!

Mi horario de oficina es de lunes a sábado, de 9 AM a 5 PM. GMT-4 - Caracas, Venezuela.

La hora aquí es actualmente 7:35 PM GMT-4.

Mi objetivo es responder a todos los mensajes dentro de un día hábil.

Contrata mi increíble soporte profesional