kyl*_*yth 1 python variables scope for-loop
这是一个非常简单的问题,但我不知道为什么python会这样做.对于下面的循环,if head != None...正在创建一个局部变量,以便head += 1不修改头部for head in myHeap.array.在头+ + 1之后添加一个打印(头)产生我想要的结果,但if语句之外的头保持不变.
for head in myHeap.array:
if head != None and count % int(grow) == 0:
head += 1
Run Code Online (Sandbox Code Playgroud)
所以当预期[3,3,3,2]时,输入myHeap.array = [2,2,2,1]在迭代结束时输出相同的列表.我还验证了if语句满足条件,解释器使用该head += 1行
您需要访问myHeap.array列表的元素才能修改它们.像这样的东西:
class myHeap(object):
pass
myHeap.array = [2, 2, 2, 1]
for n, head in enumerate(myHeap.array):
if head != None:
myHeap.array[n] = head + 1
print myHeap.array
Run Code Online (Sandbox Code Playgroud)
输出:
[3, 3, 3, 2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |