<分区> 分区>
这是一个非常简单的问题,但我不知道为什么 python 会这样做。对于下面的循环,if head != None... 正在创建一个局部变量,这样 head += 1 不会修改 for 中的头部放在 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 行
