小白已就位
2022-05-24 21:46
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
S = set([1, 3, 5, 7, 9, 11])
for a in L:
print(a)
for b in S:
print(b)
#if a == b:
# S.remove(a)
#else:
# S.add(a)
print(L)
这段代码中“for b in S”是错误的,因为在循环中修改了集合S的大小,导致了迭代器的大小发生了变化,从而引发了错误。
最后一行错了吧,应该是打印S
我把那几个#删除了,确实报错了,我的理解是你定义了a,b两个变量,都使用了for循环,然后用两个变量去进行对比,但S,L这两个长度不一样,所以报错了。你可以参考正确答案,里面只定义了一个变量,用L里的变量去判断S中是否有该变量来进行增加删除
L = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] S = set([1, 3, 5, 7, 9]) for item in L: if item in S: S.remove(item) else: S.add(item) print(S) # ==> set([2, 4, 6, 8, 10])
我这里复制粘帖了一下是可以运行的哦,可以看看是不是你那儿格式的问题
你这应该是不会报错的啊,可以把具体报错的信息说出来嘛
Python3 入门教程(新版)
154149 学习 · 1075 问题
相似问题