python内存模型简单介绍下_【数据结构与算法Python描述】——字符串、元组、列表内存模型简介...

本文介绍了Python中字符串、元组和列表的内存模型。字符串采用紧凑型数组存储,每个字符占用固定字节数;列表和元组采用引用型数组,存储元素的内存地址,以节省空间并支持不同大小的元素。此外,文章还提到了Python的array模块,用于创建紧凑型数组,以及自定义类不能用作array元素的情况。
摘要由CSDN通过智能技术生成

Python中常用的内建序列类型主要有list,str和tuple。实际上,在Python中序列可以指任何Python中for循环运行机制探究以及可迭代对象、迭代器详解),只要该可迭代对象通过实现__getitem__()方法支持使用索引方式访问元素,且实现__len__()方法返回序列的长度。

尽管list,str和tuple支持的操作十分类似,但实际上其内部的实现区别很大,鉴于后续的数据结构和算法学习将大量使用这三种内建序列类型,因此很有必要对这三个序列类型的底层原理有一个较为深刻的理解。

一、计算机内部存储模型简介

1. 内存地址

为了能够准确的描述Python实现序列类型的方式,首先需要简单了解一下计算机的内存用以存储信息的方式:计算机以二进制位(bit)来表达信息,最小的信息存储单位是字节(byte),一个字节一般等于8位。

在计算机的内存中,以字节为单位的存储单元数量众多,为了能够快速地访问这些存储单元,计算机为这些内存单元进行了编号,这些编号即所谓的内存地址,因此可以通过如#2150或#2152来访问内存中的数据,且毫无疑问该基本操作的时间复杂度为O ( 1 ) O(1)O(1)。

2. 变量本质

在实际的计算机中,内存地址的编号一般很长,不便于人类记忆,因此一般的高级编程语言都支持给内存地址起一个别名,这个别名就是变量名,代表了内存地址,即变量名本质是内存地址的别名。

但是,对于Python需要特别注意的是,变量名虽然是内存地址的别名,但是对于语句a = 8,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值