亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大佬們為什么報錯幫忙解釋一下 謝謝

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)


正在回答

5 回答

這段代碼中“for b in S”是錯誤的,因為在循環中修改了集合S的大小,導致了迭代器的大小發生了變化,從而引發了錯誤。

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

最后一行錯了吧,應該是打印S

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

我把那幾個#刪除了,確實報錯了,我的理解是你定義了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])


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

我這里復制粘帖了一下是可以運行的哦,可以看看是不是你那兒格式的問題


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

你這應該是不會報錯的啊,可以把具體報錯的信息說出來嘛


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

舉報

0/150
提交
取消

大佬們為什么報錯幫忙解釋一下 謝謝

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號