看下面两个例子:python
python2的环境:列表中的同名变量名被替换了blog
>>> x = 'my precious' >>> dummy = [x for x in 'ABC'] >>> dummy ['A', 'B', 'C'] >>> x 'C'
python3:列表中的同名变量名没有被替换ci
>>> x = 'ABC' >>> dummy = [ord(x) for x in x] >>> x 'ABC' >>> dummy [65, 66, 67]
总结:在python3环境,对于列表推导、生成器表达式、字典推导、set推导,python3会维护本身的局部变量,局部变量不会影响上下同名的变量;io