大佬們為什么報錯幫忙解釋一下 謝謝
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)
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)
2022-05-24
舉報
2023-11-06
這段代碼中“for b in S”是錯誤的,因為在循環中修改了集合S的大小,導致了迭代器的大小發生了變化,從而引發了錯誤。
2023-11-06
最后一行錯了吧,應該是打印S
2023-02-10
我把那幾個#刪除了,確實報錯了,我的理解是你定義了a,b兩個變量,都使用了for循環,然后用兩個變量去進行對比,但S,L這兩個長度不一樣,所以報錯了。你可以參考正確答案,里面只定義了一個變量,用L里的變量去判斷S中是否有該變量來進行增加刪除
2022-05-29
我這里復制粘帖了一下是可以運行的哦,可以看看是不是你那兒格式的問題
2022-05-25
你這應該是不會報錯的啊,可以把具體報錯的信息說出來嘛