{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Filter\n", "\n", "La fonction filter(fonction, liste) procure un moyen simple de filtrer tous les éléments d'un objet iterable, pour lequel la fonction testée renvoie True.\n", "\n", "La fonction filter(fonction(), l) prend comme premier argument une fonction. Elle renvoie une valeur booléenne (True ou False). Cette fonction sera appliquée à chaque élément de l'objet itérable. L'élément de l'objet iterable ne sera inclus dans le résultat que si la fonction renvoie True.\n", "\n", "Voyons quelques exemples:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# Créons d'abord une fonction\n", "def verifie_pair(num):\n", " if num%2 ==0:\n", " return True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Maintenant, nous allons filtrer une liste de numéros. Note: mettre la fonction dans le filtre sans aucune parenthèse peut sembler étrange, mais gardez à l'esprit que les fonctions sont aussi des objets." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "lst =range(20)\n", "\n", "list(filter(verifie_pair,lst))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Filter() est souvent utilisé avec les fonctions lambda, parce que nous utilisons généralement filter pour un petit travail rapide pour lequel nous ne voulons pas écrire une fonction complètement. Reprenons l'exemple ci-dessus en utilisant une expression lambda:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "list(filter(lambda x: x%2==0,lst))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Bravo ! Vous devez maintenant avoir une bonne compréhension de filter() et comment l'utiliser dans votre code!" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.0" } }, "nbformat": 4, "nbformat_minor": 0 }