python中数据比大小_在python中获取原始数据类型的大小

运行

sys.getsizeof(float)

不返回任何单个float的大小,它返回float类的大小.该类包含的数据远多于任何单个浮点数,因此返回的大小也会大得多.

如果您只想知道单个浮点数的大小,最简单的方法是简单地实例化一些任意浮点数.例如:

sys.getsizeof(float())

注意

float()

只返回0.0,所以这实际上相当于:

sys.getsizeof(0.0)

这会在你的情况下返回24个字节(也可能对大多数其他人也是如此).在CPython(最常见的Python实现)的情况下,每个float对象都将包含一个引用计数器和一个指向该类型的指针(指向float类的指针),对于64位CPython,每个都是8个字节,或者每个4个字节用于32位CPython.剩下的字节(在你的情况下24- 8 – 8 = 8,很可能是64位CPython)将是用于实际浮点值本身的字节.

但是,对于其他Python实现,这并不能保证以相同的方式工作. language reference说:

These represent machine-level double precision floating point numbers. You are at the mercy of the underlying machine architecture (and C or Java implementation) for the accepted range and handling of overflow. Python does not support single-precision floating point numbers; the savings in processor and memory usage that are usually the reason for using these are dwarfed by the overhead of using objects in Python, so there is no reason to complicate the language with two kinds of floating point numbers.

我不知道任何运行时方法准确地告诉你使用的字节数.但请注意,语言参考上面的引用确实说Python只支持双精度浮点数,所以在大多数情况下(取决于你总是100%正确的重要程度),它应该与C中的双精度相当. .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值