课程
/后端开发
/Python
/初识Python
s = set(['Adam','lisa','Paul'])
L = ['Adam','lisa','Bart','Paul']
for name in L:
if name in s:
L.remove(name)
print L
['lisa', 'Bart']
2016-09-29
源自:初识Python 6-10
正在回答
调用remove方法之后,它的下标会自动右移,所以加上for的右移,一次产生两次片装,所以会漏掉lisa,你把lisa和paul换一下,那么结果会变成[paul,bart],有个笨办法可以达到你的效果
s = set(['Adam','lisa','Paul'])L = ['Adam','bart','lisa','Paul']for name in L: if name in s: L.remove(name)for name in L: if name in s: L.remove(name)print L
此时用if,没有循环起来!
改为 for name in s:试试
举报
学python入门视频教程,让你快速入门并能编写简单的Python程序