作者查詢 / gmccntzx1

總覽項目: 發文 | 留言 | 暱稱
作者 gmccntzx1 在 PTT [ Python ] 看板的留言(推文), 共854則
限定看板:Python
[問題] list內元素搬移的問題
[ Python ]24 留言, 推噓總分: +6
作者: icetofux - 發表於 2016/11/10 15:31(9年前)
3Fgmccntzx1: 你把for element in list1那邊改用enumerate,印出每次11/10 16:01
4Fgmccntzx1: 跑的index,你就知道為什麼了11/10 16:01
5Fgmccntzx1: 即`for idx, element in enumerate(list1)`11/10 16:02
10Fgmccntzx1: 問題是在被迭代的list1被更動,不是remove影響到index11/10 18:23
12Fgmccntzx1: 迴圈開始後,index會在每次重新迭代時+1,但是list1長度11/10 18:25
13Fgmccntzx1: 會逐漸減少,導致迴圈不會執行到原有list1長度的次數11/10 18:26
14Fgmccntzx1: 而list1中的元素是從index小的開始被移除,所以每往下一11/10 18:27
15Fgmccntzx1: 次迭代,移除的元素就不是實際上想移除的11/10 18:27
16Fgmccntzx1: @LaughPoint 不會,小事11/10 18:28
17Fgmccntzx1: 再幫補充一下,如果真的要用這種做法去移除元素,可以從11/10 18:29
18Fgmccntzx1: index較大的開始移除; 或著加一個counter,記下已經移除11/10 18:30
19Fgmccntzx1: 的元素數目,去修正要移除元素的index的位置11/10 18:30