轉載一下大漠蒼狼的這篇文章《 python 中 remove 的一些坑 》https://www.cnblogs.com/lipx9527/p/9450819.html
事實上,關於產生 BUG 的原因,python 的官方網站對此有說明,不過寫得比較繁瑣,且沒有放例子,很多人可能會忽略,不如大漠蒼狼的這篇寫得具體。官網參考如下: https://docs.python.org/3.7/reference/compound_stmts.html#the-for-statement
另外,解決的方法還是要強調一下,要用 deepcopy,而不能簡單地賦值。後者只是實現了對象的引用,無法解決該 BUG。前者才是獨立地建立了一個新的變量。更為詳細的解釋可以參考飛哥霸氣的這篇文章《Python 之 直接賦值、Deepcopy、Copy 區別》https://www.cnblogs.com/feigebaqi/p/9554968.html