这个那里错了啊???
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for x in L:
if x in s:
continue
s.add(x)
print s
s = set(['Adam', 'Lisa', 'Paul'])
L = ['Adam', 'Lisa', 'Bart', 'Paul']
for x in L:
if x in s:
continue
s.add(x)
print s
2019-07-05
你做的是6-10的题吧。你的代码应该没问题不会报错,但是结果肯定不满足题目要求。
题目要求:给定一个list,对list中的每一个元素,
如果在set中,就将其删除
如果不在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
举报