Magazine Internet

python et les generator expressions

Publié le 05 septembre 2008 par Mikebrant

les generator expressions

Les generators expressions sont au python ce que le ménage est à la femme.

On va voir 2 façons d'utiliser les generator expressions .

La première façon de les utiliser est exactement la même que pour les list compréhensions ( jetez-y un oeil si vous ne savez pas ce que c'est ).

Voilà à quoi cela ressemble :

 monOpération( monExpression for maVariable in monObjet ) -> monResultat

Ça va donc nous permettre de générer un résultat, en effectuant monOpération sur l'ensemble des itérations de monObjet (et non à chaque itération) .
Et, à chaque itération, maVariable rentre  dans monExpression  .

Puisque c'est pas très clair pour vous, un bon exemple pour illustrer ceci :

#-*- coding:Utf-8 -*-
print sum( i*i for i in range(11) )


Et donc cette ligne va faire une somme de tous les :
sum( ( 0,1,4,9,16,25,36,49,64,81 ) )

Voilà , je rentrerai pas plus en détail dans cette 1° partie, mon article sur les list compréhensions l'ait suffisamment .

On peut  donc utiliser les generator expression autrement : comme son nom l'indique, on peut utiliser un generator expression en tant que generator (cf l'article dessus ) .
Cela nous évite alors de créer une fonction afin d'avoir notre generator .
De ce fait, tout pourra tenir sur une ligne et devenir incompréhensible, vous pourrez alors faire vos kékés : "ah t'arrives pas à comprendre ça, pov quiche lorraine " .

Voici la syntaxe :

( monExpression for maVariable in monObjet ) -> generator

Cela va nous renvoyer un generator ; et à chaque appel de next(), on va donc itérer monObjet et effectuer alors sur maVariable actuelle monExpression .

Et comme là aussi, vous n'avez rien compris ( je vous rassure moi non plus ) , un exemple :

#-*- coding:Utf-8 -*-
generator = ( i*i for i in range(11) )
for i in generator :
   print i
#ou
#for i in ( i*i for i in range(11) ) :
#   print i


Voilà, donc on crée notre generator .
A chaque appel de next(), on va itérer monObjet (qui est une liste contenant les nombres de  0 à 10  )  renvoyant i*i  .
J'ai mis la seconde méthode, plus compacte, en commentaires puisqu'elle est peut-être moins compréhensible aux premiers abords .

C'est terminé pour cette courte intro aux generator expressions


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • python et les générateurs

    Si je deviens un nouveau con et un ancien battantSi je me révolte plus entre 2 calmantsSi je fais encore un article sur pythonTue-moi Après les itérateurs, les... Lire la suite

    Par  Mikebrant
    INTERNET, PROGRAMMATION
  • Les Expressions

    les-expressions.com est l’exemple d’un travail de titan. Ne serait-ce que pour rassembler les significations et les origines de nombreuses expressions (dont... Lire la suite

    Par  Emandarine
    INTERNET
  • Hollywood Poster Generator : soyez en haut de l’affiche !

    Petite distraction pour préparer le week-end… Hollywood Poster Generator vous permet de personnaliser des affiches de cinéma en quelques clics. Lire la suite

    Par  Dookiz
    INTERNET, WEB2.0
  • Domain Name Generator

    Pour ceux qui ont vraiment du mal à commencer sur internet, voici un petit outil qui leur permettra de les aider a choisir leur nom de domaine parmi l’existant... Lire la suite

    Par  Emandarine
    INTERNET
  • Simple Python Calculator 1.1

    -Simple Python Calculator est un petite et simple calculatrice GTK réalisé par Abdessmed Mohamed Amine qui est programmeur dans l'equipe ubuntu-dz. Lire la suite

    Par  Said026
    HIGH TECH, INFORMATIQUE, INTERNET, JEUX VIDÉO, LOGICIELS
  • SiteMap Generator

    in quelques lignes). Pour en savoir plus : http://fr.wikipedia.org/wiki/Sitemap OS : Windows 2000, XP, Vista Taille : 1 Mo Langue : anglais Licence : freeware... Lire la suite

    Par  Lib Ellules
    HIGH TECH, INFORMATIQUE, LOGICIELS
  • Développer en Cocoa avec Python

    Même si la manière classique pour développer une application Cocoa est d'utiliser le langage Objective-C, il est aussi possible d'utiliser le langage Python... Lire la suite

    Par  Jibaku
    HIGH TECH, INFORMATIQUE

LES COMMENTAIRES (2)

Par gargame
posté le 09 octobre à 02:01
Signaler un abus

Salut,

sympa tes articles sur Python .... sauf que je suis une femme, et que toi, t'as bien fait d'appeler ton appli Z3 jesuisunconnard ... :-) !!!

Par plonstic
posté le 28 mars à 19:46
Signaler un abus

merci, petite présentation simple mais efficace. Toutefois un xrange serait mieux pour garder l'interet d'un générateur.

A propos de l’auteur


Mikebrant 9 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte