转载一下大漠苍狼的这篇文章《 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