Python et la compréhension de liste : exemples

J'ai déplacé le contenu du billet ici, dans la section articles

Commentaires

Avatar de BatchyX
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 ...

Avatar de BatchyX
BatchyX
le 26 janvier 2008 19:17

Et un truc chiant avec la compréhension de liste c'est l'ordre d'évaluation quand on en a plusieurs :

<code>&gt;&gt; [ 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 ;)

Avatar de Antoine
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>. :)

Avatar de I, NaPs &raquo; Les itérateurs et générateurs en Python

[...] de manière plus concise avec les &#8220;generator expressions&#8221; (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
:
:

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.


J'utilise Escaline 
!