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

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

請問這個是哪里出問題了呢?錯誤提示:set changed size during iteration

s?=?set(['Adam',?'Lisa',?'Paul'])
L?=?['Adam',?'Lisa',?'Bart',?'Paul']
for?skey?in?s:
	for?lkey?in?L:

		if?lkey?==?skey:
			s.remove(skey)

print?s


正在回答

7 回答

可能是因為:第一次循環到skey為'Adam'的時候,lkey也是‘Adam’,這個時候s的這個值‘Adam’就會被刪掉了,但是內循環還沒有結束,判斷 ?if?lkey?==?skey:這個的時候,其實根本找不到skey值



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

馬春杰杰 提問者

謝謝幫助,謝謝。
2017-06-23 回復 有任何疑惑可以回復我~

學習了

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

謝謝大家的回答,大家回答的都很好啊,只是只能選一個最佳,抱歉啊

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

謝謝大家的回答,謝謝

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

在做for循環時將自己做了迭代操作,結果自身的結構發生了變化,大小也跟著變化了,原來的結構沒法保存這個值了,因此報錯。

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

我查了一下 應該是因為不能在遍歷過程中修改其size,所以你應該遍歷的是L而不是s

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

為什么要用雙重循環呢,直接用if skey in L 就可以了呀

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

舉報

0/150
提交
取消
初識Python
  • 參與學習       758383    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

請問這個是哪里出問題了呢?錯誤提示:set changed size during iteration

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

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

幫助反饋 APP下載

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

公眾號

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