我有一个混合值的数据集,其中很少有值是浮动的(例如:3.4),很少是int(例如3.0)。我想检查是否所有的值都是double。我希望如果值是int或float,它们被接受为双精度数据类型。
I tried doing:
data = [3.0, 3.4, 3.2, 3.0, 3.1]
for valuedata in data:
is_double = isinstance(valuedata, float)
print(is_double)
结果是FALSE,而我希望int和float都被接受为double。
感谢你可以看到它是否是一个numbers.Number.
实例>>> import numbers
>>> isinstance(1.1, numbers.Number)
True
>>> isinstance(1, numbers.Number)
True
>>>
您可以通过将元组传递给isinstance()
:
is_double = isinstance(valuedata, (int, float))
还需要注意的是,Python的int
具有无限的精度,这可能太大了,无法放入C/c++的double
中。