我只是尝试对包含str和int的列表进行排序,并删除所有str以留下整数列表。这是我的代码:
list = [22,“Good”,“Bye”,1,7]
列表中的l: 如果type(l)== str: list.remove(L) 打印(列表)
我在控制台中得到了这个: [22,'再见',1,7]
它只删除“好”。 谁能告诉我为什么它不会删除“再见”? 使用python 3.4 btw
答案 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]