use*_*661 0 python loops while-loop
我有一段代码循环,直到引发错误或将值None分配给变量"parent".在每个循环中,它将一个值附加到列表,称为actionList.通过print语句,我知道列表在循环的每次迭代中都在增长.但是,在我退出循环后(通过捕获的KeyError),print语句显示该列表现在被赋值为None.知道发生了什么事吗?
while parent is not None:
print "iterating"
print actionList
try:
pathList.append(parentMap[parent])
except KeyError:
break
actionList.append(actionMap[parent])
parent = parentMap.get(parent, None)
return actionList.reverse()
Run Code Online (Sandbox Code Playgroud)
经过进一步检查,一旦我离开循环,看起来动作列表仍然完好无损.但是,当在actionList上使用reverse()方法时,它会消失.我使用reverse()错了吗?
是. reverse将列表反转到原位并返回None.改为:
actionList.reverse()
return actionList
Run Code Online (Sandbox Code Playgroud)
您也可以这样做return list(reversed(actionList)),这将返回列表的反向副本.
| 归档时间: |
|
| 查看次数: |
351 次 |
| 最近记录: |