2014-11-17 55 views
0

我只是簡單地嘗試對具有str和int的列表進行排序,並刪除所有str以保留整數列表。這是我的代碼:基於變量類型的排序列表 - python

列表= [22, 「良好」, 「再見」,1,7]

爲升在列表: 如果類型(升)== STR: list.remove( L) 打印(列表)

我得到這個在控制檯: [22, '再見',1,7]

它只是刪除了 「好」。 有人可以告訴我爲什麼它不會刪除「再見」? 使用Python 3.4 BTW

回答

2

這是因爲你迭代
時,我建議使用列表中的表達式創建一個新的列表與所需的過濾器刪除

>>> a_list = [22, "Good", "Bye", 1, 7] 
>>> a_list = [l for l in a_list if type(l) != str] 
>>> 
>>> a_list 
[22, 1, 7] 
+0

還不如建議不要使用'list'作爲一個變量名稱 – shaktimaan

+0

@shaktimaan你是對的,改變了! – xecgr