python数据结构学习笔记-2016-10-14-02-python列表

        2.2 python列表

        python列表是一种可变的序列容器。本节主要讲python列表的实现,涉及C语言层面。

        2.2.1 创建python列表

        如下所示:

>>> pyList = [4, 12, 2, 34, 17]
        当python列表被创建时,一个数组被创建出来,以储存列表中的元素,并且这一数组的长度是大于列表的长度的。数组中储存python对象的部分称为子数组(subarray)。如下图所示:

        列表的len()返回的是子数组的长度,而不是底层数组的长度。

        2.2.1 增加元素

>>> pyList.append(50)

        列表的append()方法是向列表末尾增加一个元素,如果底层数组未满,则会将元素储存在底层数组中,列表长度随之增加1。


         而如果底层数组已满,则

  1. 创建一个新的数组,新数组比原数组更长;
  2. 将原数组中的元素复制到新数组中来;
  3. 新数组被设定为列表数据类型 ;
  4. 删除原数组。
               

       2.2.3 合并列表

       合并另一个列表与增加元素的情况类似,但要注意,此时python是在第一个列表的底层数组的基础上,增添第二个列表的长度,而不是第二个列表的底层数组长度。

       2.2.4 插入元素

>>> pyList.insert(3, 79)
       python将指定位置的腾空,即之后的元素都向后移一位,如果底层数组已满,则像append的情形一样,创建新的数组来储存。



        删除元素

        在删除元素后,引用变量将会被设为None,随后其后的元素向前移一位。与append()相反,当列表长度减少到一定程度后,比如说少了一半,其底层数组,也会重新新建,数组的长度也会减半。

        2.2.5 列表切片

        列表切片是创建一个新列表,来储存原列表中的某些连续的元素。既然是创建新列表,这也意味着会有新的底层数组会被创建,而这一创建出来的数组长度与新列表长度相关,与原列表长度无关。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值