0

我有一段代码循环,直到引发错误或将 None 值分配给变量“父级”。在每个循环中,它都会将一个值附加到一个称为 actionList 的列表中。通过打印语句,我知道列表在循环的每次迭代中都在增长。然而,在我退出循环后(通过一个被捕获的 KeyError),打印语句显示该列表现在被分配了一个值 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 似乎仍然完好无损。但是,当在 actionList 上使用 reverse() 方法时,它就会消失。我使用 reverse() 错误吗?

4

1 回答 1

6

是的。 reverse反转列表并返回无。改为这样做:

actionList.reverse()
return actionList

您也可以这样做return list(reversed(actionList)),这将返回列表的反向副本

于 2012-10-14T07:02:33.733 回答