标题有语病,其实是这样的: 假设有两个列表 : L1 = [1,2,3,4] ; L2 = [1,2,5,6] 然后去掉L1中包含的L2的元素 直接这样当然是不行的: def removeExists(L1, L2): for e1 in L1: if e1 in L2: L1.remove(e1) 不管什么语言都不能这么干,但是又有一点不同,它不报错而且还能往下走,只不过结果不合预期. 结果是这样的,因为L1中的1移除后,迭代器索引指向了第二个元素,但是现在第二个元素是3了,所以L1的结果会是