Operaciones avanzadas con secuencias
Las funciones que vamos a estudiar en esta unidad nos acercan al paradigna de la programación funcional que también nos ofrece python. La programación funcional es un paradigma de programación declarativa basado en el uso de funciones matemáticas, en contraste con la programación imperativa, que enfatiza los cambios de estado mediante la mutación de variables.
Función map
map(funcion,secuencia)
: Ejecuta la función enviada por parámetro sobre cada uno de los elementos de la secuencia.
Ejemplo
>>> items = [1, 2, 3, 4, 5]
>>> def sqr(x): return x ** 2
>>> list(map(sqr, items))
[1, 4, 9, 16, 25]
Función filter
filter(funcion,secuencia)
: Devuelve una secuencia con los elementos de la secuencia envíada por parámetro que devuelvan True
al aplicarle la función envíada también como parámetro.
Ejemplo
>>> lista = [1,2,3,4,5]
>>> def par(x): return x % 2==0
>>> list(filter(par,lista))
Función reduce
reduce(funcion,secuencia)
: Devuelve un único valor que es el resultado de aplicar la función á los lementos de la secuencia.
Ejemplo
>>> from functools import reduce
>>> lista = [1,2,3,4,5]
>>> def add(x,y): return x + y
>>> reduce(add,lista)
15
list comprehension
list comprehension
nos propociona una alternativa para la creación de listas. Es parecida a la función map
, pero mientras map
ejecuta una función por cada elemento de la secuencia, con esta técnica se aplica una expresión.
Ejemplo
>>> [x ** 3 for x in [1,2,3,4,5]]
[1, 8, 27, 64, 125]
>>> [x for x in range(10) if x % 2 == 0]
[0, 2, 4, 6, 8]
>>> [x + y for x in [1,2,3] for y in [4,5,6]]
[5, 6, 7, 6, 7, 8, 7, 8, 9]