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)

 

 难道是推导式的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)

 于是又换成pycharm,试一试:

结果仍然不对啊: 

 在IPython中同样的:

 

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

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

 

 

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

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

 

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

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sundayhost

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值