作者darkgerm (黑骏)
看板Python
标题[问题] list comprehension 的 scope 问题
时间Fri Apr 20 23:10:12 2012
我原本以为 [0 for i in range(5)] 这里的 i 是区域变数
当建构出这个 list 後就会不见
但事实似乎不是如此…
a = [1,1,1,1,1]
for i in range(5):
a[i] = [0 for i in range(3)]
print i
预期结果:
output: 0 1 2 3 4
a = [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
实际结果:
output: 2 2 2 2 2
a = [1, 1, [0, 0, 0], 1, 1]
这篇是自问自答…
刚刚自己找到答案
http://stackoverflow.com/questions/4198906/python-list-comprehension-rebind-names-even-after-scope-of-comprehension-is-thi
缩
http://tinyurl.com/7wu5nbe
在 3 里已经解决这个问题了~
--
光明 的背後 是 黑暗
黑暗 的背後 还是 黑暗
由此可知 黑暗 > 光明 Q.E.D.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.230.123