在Python中,如何检查数字是否是整数类型之一?

在Python中,如何检查数字是否是整数类型之一?,第1张

概述在 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.int6 在 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)]
总结

以上是内存溢出为你收集整理的在Python中,如何检查数字是否是整数类型之一?全部内容,希望文章能够帮你解决在Python中,如何检查数字是否是整数类型之一?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1195003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存