Anuncios

Bienvenidos sean a este post, en este post veremos como trabaja filter, veamos su definicion segun la documentacion oficial:

Crea un iterador a partir de los elementos de iterable para los cual la funcion devuelve True, el iterable puede ser una secuencia, algun contenedor que admite iteracion o un iterador, si la funcion es None se asume la funcion de identidad, por lo tanto se eliminan todos los datos de iterable que sean falsos

Guido van Rossum
Anuncios

Veamos como es su sintaxis:

filter(funcion, iterable)
Anuncios

Con la sintaxis podemos pasar a un ejemplo para entender el concepto, para ello vamos a primero crear un nombre con algunos datos:

>>> variable = [2, 5, 8, 0, 0, 1, 0]
Anuncios

Nuestro siguiente paso sera crear un filtro y ver que sucede:

>>> _(filter(None, variable))
[2, 5, 8, 1]
>>>
Anuncios
Nota: Si se preguntan por el guion bajo es un alias: 
_ = list
Anuncios

En este caso sucedio lo que comentamos en la definicion, si pasamos a None como funcion este eliminara todos los valores que sean False o 0, probemos otro caso:

>>> _(filter(lambda x: x, variable))
[2, 5, 8, 1]
>>>
Anuncios

En este caso pasamos una funcion anonima pero como solo devuelve el valor informado obtenemos el mismo resultado que en el caso anterior, sigue omitiendo los valores falsos, por ultimo veamos el siguiente caso:

>>> _(filter(lambda x: x > 4, variable))
[5, 8]
>>>
Anuncios

En este caso hacemos que la funcion solo devuelva los valores que sean mayor a 4, por lo tanto de los valores informados en la variable nos devolvera los que cumplan esa condicion, con esto hemos cubierto la funcion.

Anuncios

En resumen, hoy hemos visto a filter, su definicion, como trabaja y como nos puede ayudar, tambien hemos visto sus distintas actitudes dependiendo de la funcion que empleemos, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.00