列表推导内存泄漏问题

在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的值被保留了,列表推导也创建了正确的列表

    推荐阅读