typestar

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

  1. reduce pliega una secuencia en un solo valor.
  2. partial fija un argumento para crear una función nueva.
  3. cuadrado y cubo especializan un solo potencia.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 5 de 5 en Generadores e itertools; paso 14 de 53 en Python pythónico.

← Anterior Siguiente →