J'ai déplacé le contenu du billet ici, dans la section articles
à noter que les list comprehensions balancent directement des listes.
si on veut juste un iterateur (comme dans le dernier exemple), on peut utiliser des ''iterator comprehension'' :((x, 2**x) for x in xrange(10))
à noter que l'iterator comprehension est plus recent que les list comprehension, qui marchent depuis euh, avant python 2.2 ...
Et un truc chiant avec la compréhension de liste c'est l'ordre d'évaluation quand on en a plusieurs :
<code>>> [ x for y in xrange(5) for x in xrange(y)][0, 0, 1, 0, 1, 2, 0, 1, 2, 3]</code>
pas du tout l'ordre auquel on s'attend ;)
<blockquote cite="BatchyX">si on veut juste un iterateur (comme dans le dernier exemple), on peut utiliser des ”iterator comprehension”</blockquote>
Oui, d'ailleurs j'en parle <a href="http://inaps.org/journal/les-iterateurs-et-generateurs-en-python" rel="nofollow">ici</a>. :)
[...] de manière plus concise avec les “generator expressions” (voir mon billet sur la compréhension de liste pour voir des exemples de la syntaxe générale, le seul différence résidant dans [...]
Optionnel.
Ne sera pas publiée, elle est utile pour les Gravatars et la modération des commentaires.
Vous pouvez utiliser ces marqueurs : a, strong, em, pre, blockquote, abbr, acronym, et code. Les sauts de lignes et les liens sont automatiquement convertis.
Ce test permet de vérifier que vous n'êtes pas un (salaud de) robot de spam.
Commentaires
BatchyX
le 26 janvier 2008 19:11à noter que les list comprehensions balancent directement des listes.
si on veut juste un iterateur (comme dans le dernier exemple), on peut utiliser des ''iterator comprehension'' :
((x, 2**x) for x in xrange(10))
à noter que l'iterator comprehension est plus recent que les list comprehension, qui marchent depuis euh, avant python 2.2 ...
BatchyX
le 26 janvier 2008 19:17Et un truc chiant avec la compréhension de liste c'est l'ordre d'évaluation quand on en a plusieurs :
<code>>> [ x for y in xrange(5) for x in xrange(y)]
[0, 0, 1, 0, 1, 2, 0, 1, 2, 3]</code>
pas du tout l'ordre auquel on s'attend ;)
Antoine — inaps.org
le 27 janvier 2008 00:32<blockquote cite="BatchyX">si on veut juste un iterateur (comme dans le dernier exemple), on peut utiliser des ”iterator comprehension”</blockquote>
Oui, d'ailleurs j'en parle <a href="http://inaps.org/journal/les-iterateurs-et-generateurs-en-python" rel="nofollow">ici</a>. :)
I, NaPs » Les itérateurs et générateurs en Python — inaps.org
le 27 janvier 2008 00:34[...] de manière plus concise avec les “generator expressions” (voir mon billet sur la compréhension de liste pour voir des exemples de la syntaxe générale, le seul différence résidant dans [...]
Laisser un commentaire