列表推导内存泄漏问题

在Python2中的列表推导式中for关键字的赋值操作会对声明的变量产生影响

例如下边的Python2控制台交互

>>> x = 'init'
>>> y = [x for x in 'ABC']
>>> x
C

列表推导中的变量x将声明的x覆盖了。这个问题在python3中已经被修复了,表达式内部的变量和赋值,只在局部起作用,表达式上下文内的同名变量还是可以正常引用。

这是Python3的代码

>>> x = 'init'
>>> y = [x for x in 'ABC']
>>> x
init
>>>y
['A', 'B', 'C']

x的值被保留了,列表推导也创建了正确的列表

你可能感兴趣的:(列表推导内存泄漏问题)