reduce y partial en Python
Dos básicos de functools: plegar y prellenar argumentos.
from functools import reduce, partial
producto = reduce(lambda acc, n: acc * n, [1, 2, 3, 4], 1)
acumulado = reduce(lambda acc, n: acc + [acc[-1] + n], [1, 2, 3], [0])
def potencia(base, exponente):
return base ** exponente
cuadrado = partial(potencia, exponente=2)
cubo = partial(potencia, exponente=3)
nueve = cuadrado(3)
Cómo funciona
reducepliega una secuencia en un solo valor.partialfija un argumento para crear una función nueva.cuadradoycuboespecializan un solopotencia.
Palabras clave y builtins usados aquí
deflambdareturn
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 328
- Tokens
- 103
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 59 segundos.
Paso 5 de 5 en Generadores e itertools; paso 14 de 53 en Python pythónico.