列表推导内存泄漏问题

在Python2中的列表推导式中for关键字的赋值操作会对声明的变量产生影响
例如下边的Python2控制台交互
1
2
3
4
>>> x = 'init'
>>> y = [x for x in 'ABC']
>>> x
C
列表推导中的变量x将声明的x覆盖了。这个问题在python3中已经被修复了,表达式内部的变量和赋值,只在局部起作用,表达式上下文内的同名变量还是可以正常引用。
这是Python3的代码
1
2
3
4
5
6
>>> x = 'init'
>>> y = [x for x in 'ABC']
>>> x
init
>>>y
['A', 'B', 'C']
x的值被保留了,列表推导也创建了正确的列表