【发布时间】:2014-02-03 02:44:01
【问题描述】:
我注意到,当您对预先存在的列表运行列表推导时,该列表在处理后不会更改。
但是,如果理解中的本地名称相同,则为您的初始变量。
这是为什么?
例子:
>>> y=[1,2,3,4,5]
>>> [X**2 for X in y]
[1, 4, 9, 16, 25]
>>> y
[1, 2, 3, 4, 5]
>>> [y**2 for y in y]
[1, 4, 9, 16, 25]
>>> y
5
如您所见,在第二个示例中,y 已更改为整数 5。
【问题讨论】:
-
列表推导不会引入新的变量范围。如果您重复使用相同的变量名,它将用列表中的最后一个值覆盖该变量。
标签: python list python-2.7 list-comprehension