当我退出while循环时,为什么我的列表会消失?

时间:2012-10-14 06:59:04

标签: 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()

经过进一步检查,一旦我离开循环,看起来动作列表仍然完好无损。但是,当在actionList上使用reverse()方法时,它会消失。我使用reverse()错了吗?

1 个答案:

答案 0 :(得分:6)

是。 reverse反转列表并返回None。这样做:

actionList.reverse()
return actionList

您还可以执行return list(reversed(actionList)),这将返回列表的反向副本