我正在尝试在包含浮点数和整数值的输入列表中查找整数值。问题是读入的列表如下所示:
List = [“14”,”8.00”,”2.00”,”3”]
我将如何仅查找此列表中的整数值,而不是浮点数?我假设类型函数不起作用,因为它只会说所有数字都是字符串。
您可以使用ast
模块来识别整数并从字符串中浮点数。
In [16]: type(ast.literal_eval("3"))
Out[16]: int
In [17]: type(ast.literal_eval("3.0"))
Out[17]: float
现在将此概念与isinstance
一起使用,您可以过滤掉整数:
In [7]: import ast
In [10]: a = ['14','8.00','2.00','3']
In [11]: a
Out[11]: ['14', '8.00', '2.00', '3']
In [12]: res = []
In [13]: for num in a:
...: if isinstance(ast.literal_eval(num),int):
...: res.append(num)
...:
In [14]: res
Out[14]: ['14', '3']
尝试以下代码:
l = ["14","8.00","2.00","3"]
l = [int(i) for i in l if i.isdigit()]
print(l)