在Python中,如何检查数字是否是整数类型之一?
发布时间:2020-12-20 12:33:39 所属栏目:Python 来源:网络整理
导读:在 Python中,如何在不检查每个整数类型的情况下检查数字的类型是否为整数,即’int’,’numpy.int32’或’numpy.int64’? 我想尝试int(val)== val但是当float设置为整数值(而不是type)时,这不起作用. In [1]: vals = [3,np.ones(1,dtype=np.int32)[0],np.zer
在
Python中,如何在不检查每个整数类型的情况下检查数字的类型是否为整数,即’int’,’numpy.int32’或’numpy.int64’?
我想尝试int(val)== val但是当float设置为整数值(而不是type)时,这不起作用. In [1]: vals = [3,np.ones(1,dtype=np.int32)[0],np.zeros(1,dtype=np.int64)[0],np.ones(1)[0]] In [2]: for val in vals: ...: print(type(val)) ...: if int(val) == val: ...: print('{} is an int'.format(val)) <class 'int'> 3 is an int <class 'numpy.int32'> 1 is an int <class 'numpy.int64'> 0 is an int <class 'numpy.float64'> 1.0 is an int 我想过滤掉最后一个值,即numpy.float64. 解决方法
您可以将isinstance与包含感兴趣类型的元组参数一起使用.
要捕获所有python和numpy整数类型,请使用: isinstance(value,(int,np.integer)) 以下示例显示了几种数据类型的结果: vals = [3,np.int32(2),np.int64(1),np.float64(0)] [(e,type(e),isinstance(e,np.integer))) for e in vals] 结果: [(3,<type 'int'>,True),(2,<type 'numpy.int32'>,(1,<type 'numpy.int64'>,(0.0,<type 'numpy.float64'>,False)] 第二个例子,仅适用于int和int64: [(e,np.int64))) for e in vals] 结果: [(3,False),(0,False)] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |