簡體   English   中英

為什么退出while循環時列表消失了?

[英]Why does my list disappear when I exit a while loop?

我有一段代碼循環執行,直到引發錯誤或將變量None的值分配給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()錯誤嗎?

是。 reverse將適當的列表reverse並返回無。 改為這樣做:

actionList.reverse()
return actionList

您還可以return list(reversed(actionList)) ,這將返回列表的反向副本

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM