2014-12-06 44 views
0

我剛剛學習python.I在這裏有一個問題。它是簡單的代碼,但我不知道爲什麼結果是意外的。Python:刪除列表中的數字

這裏是我的代碼:

a=[1,2,3,4,6,7,'dd','ss','gg','oo',8] 

for i in a: 
    for b in range(10): 
     if i==b: 
      a.remove(i) 

print a 

我想刪除的數量。我期待的結果將是= [「DD」,「SS」,「GG」,「00」] 但結果是:

[2, 4, 7, 'dd', 'ss', 'gg', 'oo'] 

我不明白爲什麼結果是這樣的。

任何人都可以幫助我嗎? 謝謝!

+0

決不遍歷List,並從中刪除。相反,請創建一個新列表並添加您想要保留的所有內容。 – user2782067 2014-12-06 06:35:42

+0

好的,謝謝!我會記得的! – newbie11 2014-12-06 08:25:11

回答

0

試試這個刪除所有整數列表

 a = [x for x in a if not isinstance(x, int)] 
+0

它的工作原理,謝謝! – newbie11 2014-12-06 08:22:45

+0

你能告訴我爲什麼結果很奇怪嗎? – newbie11 2014-12-06 08:25:54