为了账号安全,请及时绑定邮箱和手机立即绑定

List.remove() 怎么不删除其他的了?

s = set(['Adam', 'Lisa', 'Paul'])
L = ['Lisa', 'Adam', 'Bart', 'Paul']
for name in L:
    if name in s:
        L.remove(name)
    else:
        s.add(name)
print (s)
print (L)           #为什么输出的L中没有删除Adam???????????

输出结果:
{'Bart', 'Adam', 'Paul', 'Lisa'}
['Adam', 'Bart']

我知道原因,但我不知道怎么解决。

我知道原因,但我不知道怎么解决。

正在回答

1 回答

我知道原因,但我不知道怎么解决。

0 回复 有任何疑惑可以回复我~
#1

人间世支离疏

原因是啥?
2019-05-26 回复 有任何疑惑可以回复我~
#2

慕姐8265218 提问者 回复 人间世支离疏

当循环到L.remove(Lisa)时,list被改变,Adma向左移动一位。而for循环要继续向右移动,就会把Adam漏掉。
2019-05-27 回复 有任何疑惑可以回复我~
#3

人间世支离疏 回复 慕姐8265218 提问者

可以把L赋值给T,在L里循环,T.remove
2019-05-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

List.remove() 怎么不删除其他的了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信