請問這個是哪里出問題了呢?錯誤提示: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
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
2017-06-23
舉報
2017-06-23
可能是因為:第一次循環到skey為'Adam'的時候,lkey也是‘Adam’,這個時候s的這個值‘Adam’就會被刪掉了,但是內循環還沒有結束,判斷 ?if?lkey?==?skey:這個的時候,其實根本找不到skey值
2017-07-02
學習了
2017-06-23
謝謝大家的回答,大家回答的都很好啊,只是只能選一個最佳,抱歉啊
2017-06-23
謝謝大家的回答,謝謝
2017-06-23
在做for循環時將自己做了迭代操作,結果自身的結構發生了變化,大小也跟著變化了,原來的結構沒法保存這個值了,因此報錯。
2017-06-23
我查了一下 應該是因為不能在遍歷過程中修改其size,所以你應該遍歷的是L而不是s
2017-06-23
為什么要用雙重循環呢,直接用if skey in L 就可以了呀