【发布时间】:2013-11-24 03:09:26
【问题描述】:
这是一个非常简单的问题,但我不知道为什么 python 会这样做。对于下面的循环,if head != None... 正在创建一个局部变量,这样head += 1 不会修改for head in myHeap.array 中的头部。在 head += 1 之后添加一个 print(head) 会产生我想要的结果,但是 if 语句之外的 head 保持不变。
for head in myHeap.array:
if head != None and count % int(grow) == 0:
head += 1
所以输入 myHeap.array = [2, 2, 2, 1] 在迭代结束时输出相同的列表,此时需要 [3, 3, 3, 2]。我还验证了 if 语句满足条件并且解释器使用 head += 1 行
【问题讨论】:
标签: python variables for-loop scope