在Python中,如果我有一个包含浮点数的列表,我怎样才能找到所有的圆形数字?
e.g。 检查x = [1.234,0.000000,2.0,0.0001]给出输出
pre-commit
我尝试过isinstance函数,但没有用:
>>> False
True
True
False
我猜技术上是2.0,而且不是整数类型。所以我不能那样用它。
答案 0 :(得分:2)
使用isinstance
不起作用,因为技术上仍然是float
:
>>> x = [1.234, 0.000000, 2.0, 0.0001]
>>> [type(n) for n in x]
[float, float, float, float]
但您可以检查转换为int
的值是否等于原始值:
>>> [n == int(n) for n in x]
[False, True, True, False]
或者,正如评论中所指出的,使用float.is_integer
:
>>> [n.is_integer() for n in x]
[False, True, True, False]