[問題] 刪除list中特定的element

作者: neurone (明月照大江)   2014-02-02 17:48:08
小弟有個問題請各位大師,我想要刪掉input list中特定的element
以下為例,想要刪掉值為0,9 的element。但是index=7的0 刪不掉。
請問程式碼哪裡出錯造成這樣的問題?
謝謝各位撥冗解救小弟
================================
input = [0,0,1,2,3,4,0,5,6,7,8]
del_char = [0,9]
print input
for item in input:
if item in del_char:
input.remove(item)
print input
================================
預期結果:[1,2,3,4,5,6,7,8]
實際結果:[1,2,3,4,0,5,6,7,8]
作者: bxxl (bool)   2014-02-02 18:25:00
你在loop中不能把"input"改掉,會影響for loop的判斷
作者: tiefblau (tiefblau)   2014-02-02 22:10:00
話說input保留字喔
作者: neurone (明月照大江)   2014-02-02 22:14:00
感謝大師!
作者: mikapauli (桜花)   2014-02-03 09:36:00
問題在於你完全搞錯了list.remove的用法吧要用remove可以這樣寫for item in del_char:while(item in input):input.remove(item)阿while不用括弧

Links booklink

Contact Us: admin [ a t ] ucptt.com