列表推导内存泄漏问题

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容