[英]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.