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

这个那里错了啊???

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

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

for x in L:

    if x in s:

        continue

    s.add(x)

print s


正在回答

1 回答

你做的是6-10的题吧。你的代码应该没问题不会报错,但是结果肯定不满足题目要求。

题目要求:给定一个list,对list中的每一个元素,

  1. 如果在set中,就将其删除

  2. 如果不在set中,就添加进去

分析一下你的代码:

if x in s:
    continue

这段代码的判定的结果是:如果x在set中,那么跳过本次循环;

这和题目的要求不符,正确的代码应该是:

if x in s:
     s.remove(x)

并且,第二个错误:

for x in L:
    if x in s:
        continue
    s.add(x)

在整个循环中,每执行一次循环,你的这段代码都会执行一次s.add(x)

题目要求为:如果不在set中,就添加进去,这段代码的功能显然不符合题目的要求

需要为s.add(x)设置一个执行条件,满足x不在set中这个条件才执行s.add(x)。

以下为正确代码:

for x in L:
    if x in s:
        s.remove(x)
    else:
            s.add(x)

完整代码如下,希望能帮到你:

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


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

weixin_慕瓜9225184

请问else后面默认缩进4字符,运行失败,一定要再手动缩进四个 为什么
2019-07-06 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

这个那里错了啊???

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