我有一段代码循环,直到引发错误或将值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()
经过进一步检查,一旦我离开循环,看起来动作列表仍然完好无损。但是,当在actionList上使用reverse()方法时,它会消失。我使用reverse()错了吗?
答案 0 :(得分:6)
是。 reverse
反转列表并返回None。这样做:
actionList.reverse()
return actionList
您还可以执行return list(reversed(actionList))
,这将返回列表的反向副本。