Je viens d'apprendre de Why do list comprehensions write to the loop variable, but generators don't? que Liste compréhensions aussi « fuite » de leur variable de boucle dans le périmètre entourant.Liste des compréhensions laissent échapper leur variable boucle python2: comment rendre compatible avec python3
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
>>> x = 'before'
>>> a = [x for x in (1, 2, 3)]
>>> x
3
Ce bug est corrigé dans Python3.
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
>>> x = 'before'
>>> a = [x for x in (1, 2, 3)]
>>> x
'before'
Quelle est la meilleure façon de rendre Python2 compatible avec Python3 à ce stade?
ne vous fiez pas au nom « fuite » ... Utiliser des noms uniques pour vos variables list-comp. – mgilson
Utiliser une expression de générateur avec la liste –