基于变量类型的排序列表 - python

时间:2014-11-17 06:34:52

标签: python list

我只是尝试对包含str和int的列表进行排序,并删除所有str以留下整数列表。这是我的代码:

list = [22,“Good”,“Bye”,1,7]

列表中的l:     如果type(l)== str:         list.remove(L) 打印(列表)

我在控制台中得到了这个: [22,'再见',1,7]

它只删除“好”。 谁能告诉我为什么它不会删除“再见”? 使用python 3.4 btw

1 个答案:

答案 0 :(得分: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]