English English

Formas alternativas de crear funciones en Python

También puede crear funciones de una manera diferente para hacer operaciones en los objetos (lista, tuplas, etc.) de una manera más sencilla. Esto hace también que su código de programación sea más fácil de leer.

Python ofrece también estas funciones y comandos que pueden ser usados con (o en lugar de) el comando "def":

 

lambda command

Este comando está escrito en la siguiente sintaxis:
argumentos lambda : su expresión

Escribes tu variable (argumentos) que usarás antes del punto doble ":". Tu expresión que utiliza tus argumentos se escribe después del punto doble.
El resultado/valor de tu expresión es devuelto cuando llamas a tu comando "lambda" definido.

El comando "lambda" puede ser usado en cualquier lugar en lugar de una función definida por "def".

 

Ejemplo - Mis ganancias calculadas a través de mi comando lambda definido "e" que obtiene mis costos "c" y mis ventas "s":

 

e = lambda k,s : s-k

 

Ahora podemos llamar a mi nuevo comando lambda "e" que devuelve el resultado de mi expresión.

print(e(1000,2000)
1000

 

map()

Con "map()" puede aplicar su función definida a cada elemento de un objeto iterable definido ("lista", "tupla", etc.). Esta función "map()" devuelve entonces los resultados de la función aplicada (sobre el objeto iterable definido) como una lista.

La sintaxis de la función:

map(func, objec)

 

Ejemplo - Esta aplicación calcula la segunda potencia de los números dados y la muestra en forma de lista:

def sndpower(n): 
return n * n 

evennumbers = (0, 2, 4, 6, 8) 
results = map(sndpower, evennumbers) 
print(list(results))
{0, 4, 16, 36, 64}

También puede pasar un comando "lambda" en lugar de una función.

map(lambda n: n*n, evennumbers)

La función "map()" también puede obtener múltiples listas como argumentos.

map(func, objec1, objec2, ... objecn)

 

 

zip()

Esta función "zip()" tiene la misma funcionalidad que "map()" excepto que la longitud de la lista devuelta se ajusta a la longitud del objeto iterable definido más corto.


También puede escribir "None" en su lugar, si no desea utilizar una función.

zip(None, myobject)

Ejemplo:

 

a = [1,2,3,4,5]
b = [10,11,12]
results = zip(a, b)

print(list(results))
[(1, 10), (2, 11), (3, 12)]

 

 

reduce()

La función "reduce()" obtiene los valores de una secuencia y devuelve de ella un único valor que fue creado por sus funciones definidas. El valor individual puede ser la suma, el valor medio, etc.

Necesitas importar el paquete Python "functools".

 

from functools import reduce


La sintaxis de la función:

reduce(func, seq)

 

Ejemplo - Este programa crea la suma de una secuencia:

from functools import reduce

numbers = [4,9,17,50,130]

def createsum(x, y):
return x+y;

results = reduce(createsum, numbers)

print(results)

 

 

filter()

Esta función "filter()" utiliza la función de filtro definida por usted ("func") para filtrar un objeto ("objec") que no cumple con el requisito de su función "func".
La función de filtro "func" es una función que obtiene un valor y devuelve verdadero o falso.

La sintaxis de la función:

filter(func, seq)

 

Ejemplo:

numbers = [2, 4, 6, 60, 150]

def twodigits(x):
if (x >= 10):
return True
else:
return False

results = filter(twodigits, numbers)
print(list(results))
[60, 150]

 

Si se utiliza "None" en lugar de una función, entonces se muestran todos los valores que son "true".
Aquí hay un ejemplo, donde hay valores que no son "true":

mylist = [-10, 0, False, '', 4, 6, 60, 150]

results = filter(None, mylist)
print(list(results))
[-10, 4, 6, 60, 150]

 

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.