【Python笔记】python不支持的数据类型有哪些?

【结论】 Python不支持的数据类型是char 、byte类型。

Python 之禅第三条 Simple is better than complex.

在 Python 中, string 中的每个字符占的空间大小是 8 bit=1byte。

空字符‘’占用25个byte, 长度为1的字符串 ‘a’ 或‘’1‘’占内存26个 byte,也就多一个字符多1个byte。

【示例】

import sys
print(sys.getsizeof(''))
print(sys.getsizeof('a'))
print(sys.getsizeof('1'))
print(sys.getsizeof('a1'))
25
26
26
27
  • 每个 字符char存在 ob_sval 里面的, 占大小 8bit=1byte,余下24个byte 主要来自于宏 PyObject_VAR_HEAD

  • Python 的string实现还用到了一个叫 *interned 的全局变量, 里面可以存长度为 0 或 1
    的字符串(char),可以节省空间并且加快速度。

  • 在 Python 里既没有指针也没有"裸露的数据结构" (非对象)

总之,这样设计满足 Python 一切都是对象, Simple is better than complex的设计思想。

【补充说明】

Python 中的5大标准数据类型

  • Numbers (数字)
    • int(有符号整型)
    • long(长整型)
    • float(浮点型)
    • complex(复数)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

注意: string != char
可变数据类型:列表list[ ]、字典dict{ }
不可变数据类型:整型int、字符串str’ '、元组tuple()

Python getsizeof()

详见: 【Python笔记】getsizeof() & getsize() 区分

Reference: https://www.php.cn/python-tutorials-423398.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值