04-2_Python中的线性表

Python中的顺序表

Python中的list(列表)和tuple(元组)两种类型采用了顺序表的实现技术
tuple是不可变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似

listr的基本实现技术

Python标准类型list就是一种元素个数可变的线性表,可以加入和删除元素,并在各种操作中维持已有元素的顺序(即保序)

在Python的官方实现中,list就是一种采用分离式技术实现的动态顺序表。这就是为什么用list.append(x) (或 list.insert(len(list), x),即尾部插入)比在指定位置插入元素效率高的原因。

在Python的官方实现中,list实现采用了如下的策略:在建立空表(或者很小的表)时,系统分配一块能容纳8个元素的存储区;在执行插入操作(insert或append)时,如果元素存储区满就换一块4倍大的存储区。但如果此时的表已经很大(目前的阀值为50000),则改变策略,采用加一倍的方法。引入这种改变策略的方式,是为了避免出现过多空闲的存储位置。

原文地址:https://www.cnblogs.com/nichengshishaonian/p/11576095.html