从输入文件搜索数据类型



我正在尝试在包含浮点数和整数值的输入列表中查找整数值。问题是读入的列表如下所示:

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)

最新更新