复现的情况大概可以写成这样 abc = [1, 2, 2, 3, 4] print abc for index, i in enumerate(abc): if i == 2: del abc[index] print abc 可以发现一个问题,按照我的想法这个例子将会把两个2都删除了之后得到一个只有元素[1, 3, 4]的abc. 但是实际操作之后发现,其将返回一个[1, 2, 3, 4]的数组 这究竟是怎么导致的???? 问题就在于我直接在原始数组里面del掉了某个符合条件的元素,比如我在i…