python 的 lambda-map-reduce

Como expresión, lambda define una función anónima: lambda x: f (x), el lado izquierdo de los dos puntos es el parámetro de entrada y el lado derecho es el cuerpo de la función, que se puede representar mediante una función:

def f(x):
	函数体
	return f(x)

Por ejemplo

lambda x:x**2

Su papel es equivalente a:

def f(x):
	return x**2

Lambda usado solo:

tt=lambda x:x**2
print(tt(9))
#81

Lambda se utiliza como función implícita:
combinado con map:

li=[1,2,3,4,5]
tt=map(lambda x:x**2,li)
for x in tt:
    print(x)

Salida:

1
4
9
16
25

Combinar reducir:

from functools import reduce
li=[1,2,3,4,5]
tt=reduce(lambda x,y:x*y,li)
print(tt)

Salida:

120

Map y reduce son funciones de orden superior de python: map (mapeo) se usa para mapear un conjunto de pares clave-valor en un conjunto de nuevos pares clave-valor, y reduce (reduce) se usa para reducir un conjunto de pares clave-valor pares de valores a un
mapa de valor único (f, [x1, x2, x3]) = [f (x1), f (x2), f (x3)], sustituya la función f por cada elemento de Iterable para obtener el valor de retorno :

def doubl(x):
    return x*2
li=[1,2,3,4,5]
res=map(doubl,li)
print(res)
print(type(res))
for x in res:
    print(x)

La salida es:

<map object at 0x000002AF26823148>
<class 'map'>
2
4
6
8
10

reducir (f, [x1, x2, x3]) = f (x1, f (x2, f (x3)))

from functools import reduce
def doubl(x,y):
    return x*y
li=[1,2,3,4,5]
res=reduce(doubl,li)
print(res)
print(type(res))

La salida es:

120
<class 'int'>

Nota: python3 ya no admite la reducción, debe importarse desde functools

Supongo que te gusta

Origin blog.csdn.net/liulanba/article/details/110920352
Recomendado
Clasificación