Python中的列表

Python中的列表属于采用分离式技术实现的动态顺序表

顺序表表示元素保存在一块连续的存储区中。

分离式是为了保证表对象的标识id不会变化,即连续的存储中存的是每个元素的存储地址,访问元素时,先在连续的存储区中找到对应的存储地址(每个存储地址占4个字节),再拿存储地址去访问元素。

动态是指可以进行元素存储区扩充,Python官方实现中,list采用如下策略:建立空表时,系统分配一块能容纳8个元素的存储区,在执行插入操作时,如果元素存储区满就换一块4倍大的存储区。但是如果表的大小超过50000,则改变策略,每次增加一倍,这样是为了避免出现过多空闲的存储位置。


另外,一般表的扩充有两种策略:

  1. 每次增加固定数目的存储位置,如每次扩大10个元素位置,这种策略称为线性增长(特点: 节省空间,但是扩充操作次数频繁)
  2. 每次扩充容量加倍,如每次扩充增加一倍的存储空间(特点: 减少扩充次数,但是可能会造成大量空间浪费。此种方式以空间换时间,为推荐方式)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值