python list底层数据结构_揭晓数据结构的底层

本文深入探讨了Python列表的底层数据结构——顺序表,包括顺序表的概念、线性表的两种实现模型(顺序表和链表)、顺序表的基本形式、Python列表的动态扩容策略等。解释了列表下标从零开始的原因,以及为何append操作比insert快。
摘要由CSDN通过智能技术生成

今天我们来深入的唠唠列表,不过先别着急,我们来思考以下几个问题。

列表的下标为什么从零开始?

为什么列表append比insert快?

为什么列表append之后,id值为什么不变,也可以说内存地址不变?

但是一旦要解决这几个问题,我们首先就得了解顺序表。

顺序表

在程序中,当老A要求大家存储老A的年龄为 18,大家肯定会想到使用整数类型。但是,如果老A要求大家存储老A的爱好,比如:睡觉,美食,追寻寻(剧中男主)...这个时候,很明显单个的字符串存储并不方便。

也就是说我们需要将一组(同为字符串类型)数据元素作为整体的管理以及使用,那么我们就需要创建这种元素组,并且用变量记录它们。当然,这一组数据中包含的元素个数也可以发生变化(可以增加或删除元素),比如老A 的爱好又增加了个 看书,或者说老A的爱好减少了一个 追寻寻。

对于这种需求,其实大家会脱口而出选择列表。但是,老A说了今天是深入地聊,所以我们要从一个更加泛的名词来概括。我们将这一组元素看成一个序列,用元素在序列里的位置和顺序,表示实际应用中的某种有意义的信息,或者表示数据之间的某种关系。

这样的一组序列元素的组织形式,我们可以将其抽象为线性表。一个线性表是某类元素的一个集合,还记录着元素之间的一种顺序关系。线性表是最基本的数据结构之一,在实际程序中应用非常广泛,它还经常被用作更复杂的数据结构的实现基础。

根据线性表的实际存储方式,分为两种实现模型:

顺序表:将元素顺序地存放在一块

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值