python list删除元素时,遇到了bug?

 今天做数据时,用jupyter先进行个简单的测试,发现个问题,为什么L4中的第二个元素[3,4,2,4]没有删除掉,于是在前面添加打印查看,发现是满足判断条件的,纳闷。。。。

a=[3,4]
L4=[[3,4],[3,4,2,4],[5],[4,2,1],[3,6,4]]

[print(j) for j in L4 if set(a) <= set(j)]
print('*'*30)
[L4.remove(j) for j in L4 if set(a) <= set(j)]
print(L4)
print('*'*30)
L4.remove([3, 4, 2, 4])
print(L4)

 

python list删除元素时,遇到了bug?

 难道是推导式的bug?改为for循环后仍然不对:

a=[3,4]
L4=[[3,4],[3,4,2,4],[5],[4,2,1],[3,6,4]]
for j in L4 :
    if set(a) <= set(j):
        L4.remove(j) 
print(L4)

python list删除元素时,遇到了bug?

 于是又换成pycharm,试一试:

python list删除元素时,遇到了bug?

结果仍然不对啊: 

python list删除元素时,遇到了bug?

 在IPython中同样的:

python list删除元素时,遇到了bug?

 

换一组数据试一试,结果输出是正确的,泪崩。。。什么情况。。。。。。BUG?是删除过程中,要删除的元素如何连续占位list的原因?

python list删除元素时,遇到了bug?

增加两个元素,连在一起准备删除的,看来还真是:

python list删除元素时,遇到了bug?

 

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

看来是个bug,只能先append提取要删除的元素,再remove了

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++