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]