Python 如何仅保存列表中的数字?

Python 如何仅保存列表中的数字?,python,python-3.x,type-conversion,Python,Python 3.x,Type Conversion,我只想从Python列表中提取数字,其中输入元素是str: input_in_terminal = "5 43 8 109 32" input_list = [5, ' ', 43, ' ', 8, ' ', 109, ' ', 32] 如何仅提取数字并创建如下列表 extracted_list = [5,43,8,109,32] Python 3: extracted_list = list(filter(lambda x: x != ' ' , input_list

我只想从Python
列表中提取数字,其中输入元素是
str

input_in_terminal = "5 43 8 109 32"

input_list = [5, ' ', 43, ' ', 8, ' ', 109, ' ', 32]
如何仅提取数字并创建如下列表

extracted_list = [5,43,8,109,32]
Python 3:

extracted_list = list(filter(lambda x: x != ' ' , input_list))
或者,如果要避免使用多个空格,请检查它是否为整数,并过滤掉任何非整数的内容

extracted_list = list(filter(lambda x: isinstance(x,int) , input_list))
如果您需要其他类型,如浮点或复数,您可以执行以下操作:

extracted_list = list(filter(lambda x: isinstance(x,(float,int,complex)) ,input_list))

speed: --- 6.818771362304688e-05 seconds ---
或任何数字

import numbers
input_list = [5, ' ', 43, ' ', 8, '   ', 109, ' ', 32, 3.14]
extracted_list = list(filter(lambda x: isinstance(x, numbers.Number) ,input_list))

print (extracted_list)


您可以在这里进行测试:

[i为输入列表中的i,如果i!='']
您是如何从输入到终端的输入中获得
输入列表的?听起来你在做一大堆你不需要的工作,只是为了保留你不需要的部分输入。但是最好只使用
列表(map(int,input().split())
[int(word)for word in line.split()]
就是处理输入行所需的全部
[elem for elem in lst if isinstance(elem,int)]
将筛选您所拥有的列表,但正如用户建议的,您可能不应该首先拥有该列表。不幸的是,我无法更改输入列表,但列表(map(int,input().split())工作正常!谢谢。这将过滤掉零,而不会过滤掉空白。