如测试代码,并没有将li.li_ 的交集查询出来 li=[1,2,3,4,5] li_=[2,5,6,7,9] for i in li_: if i in li: li_.remove(i) print li_ # 输出 [5, 6, 7, 9] 原因 for 遍历列表时记录的是元素的索引位置,如i=2符合条件,此时li 列表会将2元素删除,则5元素的下标就变成了0,而此时for记录的是遍历下标为1的元素,所以就跳过了5 所以要避免在遍历中对列表变更 最简单的解决方法是将符合条件的元素追加到新列