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

为什么这个运行是错误的

s = set(['Adam', 'Lisa', 'Paul'])

L = ['Adam', 'Lisa', 'Bart', 'Paul']

for name in L:

    for y in L:

        if name == y :

            s.remove(name)

        else :

            s.add(name)

print s


正在回答

2 回答

你这个程序的逻辑写错了,for()循环嵌套的两个变量 name 和 y 来自相同的list--L 和测试的题目不符合,但是代码没有问题。

s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
L = set(L) 
for L in L:
    if L in s:
        s.remove(L)
    else:
        s.add(L)
print (s)


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

第一:你两次迭代的对象都是L

第二:set在迭代过程中不允许更新,


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

举报

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

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

进入课程

为什么这个运行是错误的

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