如何只保存列表中的数字?

时间:2018-06-04 22:22:46

标签: python python-3.x

我想只提取输入元素为vector<string> parte = explode(linha, ";"); 的Python xstring, xutility, xmemory0, xstddef中的数字。

list

如何仅提取数字并创建如下列表?

str

3 个答案:

答案 0 :(得分:-2)

如果值是包含数字的字符串,请使用此(如说明所述):

extracted_list = [s for s in input_list if s.isdigit()]

如果它们是实际数字(如您的示例所示),请使用:

extracted_list = [s for s in input_list if isinstance(s, (float,int,complex))]

虽然看起来你可以节省很多工作,直接将输入拉为空格分隔的整数,如下所示:

input_list = list(map(int, input().split()))

答案 1 :(得分:-2)

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)

您可以在此处测试:http://py3.codeskulptor.org/#user301_l6dgnVkb19Or9dN.py

答案 2 :(得分:-5)

列出resultList = inputList。流()。 filter(value-&gt; value!=&#39;&#39;)。 collect(Collectors。toList());

过滤器将提取有效值。

它在java中