Python中的列表

Python中的列表

列表是一个整齐排列的队列,其内部的的个体称作元素,它由若干个元素组成,其内部也可以没有元素(空列表)。元素可以是任意对象如:list,tuple,字符串,数字等等…,因为列表里的元素是顺序排列的(线性数据结构),所以可以使用索引得到它们

  • lst1 = list()#定义了一个空列表,
    lst2 = []#定义了一个空列表,
    lst3 = [1,2,‘ab’] #定义了一个列表
    lst4 = list(range(5)) #使用可迭代对象(iterable)定义了一个列表

list操作中的增加元素

1* list.append(object)->None 在列表尾部追加元素object,返回值None。就地修改,时间复杂度O(1),object 为需要插入的元素
2* list.insert(index,object)->None 在指定索引处插入元素object,返回值None。就地修改。时间复杂度O(n),index 为元素插入的位置,object需要插入的元素

  • 注意:list.insert(index)中的索引值的大小可以超出该列表的索引范围,

    超过左边界为首部添加,会导致整个列表中所有元素位置都向后挪动内存地址空间,时间复杂度O(n).
    超过右边界为尾部添加,此时相当于append方法,直接在尾部追加,时间复杂度为O(1)

3* list.extend(iterable)->None 将可迭代对象的元素追加到尾部,返回值None.就地修改

4* list+list 将两个列表链接起来,产生一个新的列表,原列表不变。本质上是调用了__add()__方法
在这里插入图片描述
5* llist* n 将本列表中元素重复n次,返回新的列表
在这里插入图片描述

  • 注意:当列表中存在引用类型元素时,如上图当给lis3的第一个元素>lis1中的第一个元素赋值“888”时,原列表lis1内的第一个元素的第一个值也被更改了,像此类型为复杂的引用类型,如果只把lis3的第一个元素更改为888,那lis1的值就不会有所改变

在这里插入图片描述

list操作中的删除元素

1* list.remove(value)->None 从左至右查找第一个匹配的值,移除该元素返回None,否则ValueError,就地修改。效率比较低,会产生元素的挪动。
2* list.pop(index)->obj #删除指定索引位置的元素,如果不指定,默认从列表尾部删除。返回被删除元素的对象。
3* list.clear()->None 清除列表索引元素,剩下一个空列表,就地修改。

list操作中的查询元素

列表的访问—索引(index)

  • 索引,也叫下标,分为正索引,负索引,正负索引都不可越界,否则引发异常Index Error
    正索引:从左数第一个元素索引为0开始,
    负索引:从右数第一个元素索引为-1开始,
    索引的使用方法为:list[index] 使用中括号访问,括号内输入对应值得索引号

list操作中的修改元素

  • list[index] = value ,index不能超出索引范围

list中的其他操作

1* 将列表元素反转:list.reverse()->None,就地修改O(n)
2* 将列表元素排序:list.sort(key=None,reverse=False)->None ,就地修改,默认升序

  • key 一个函数,指定key如何排序 lst.sort(key=function)
    reverse是反转的意思,默认值为False,表示升序,如果指定reverse=True,表示降序

3* 浅拷贝列表:copy(list)->list 返回新列表,如果列表中的值有引用类型,只会复制引用类型的地址。
4* 深拷贝列表:deepcopy(list)->list 遇到引用类型,会在内存中重新创建一个和引用类型所指向的对象。

  • copy模块提供了deepcopy方法可以达到深拷贝
    import copy
    lst1 = [0,1,2,[3,4,5]]
    lst2 = lst1.copy() #浅拷贝
    lst3 = copy.deepcopy(lst1) #对lst1进行深拷贝

5* in 判断一个元素是否在列表里面

  • 888 in [888,[5]] #判断888是否在列表[888,[5]里面,这里返回值时True
    in 判断一个元素是否在列表里面

  • 888 in [888,[5]] #判断888是否在列表[888,[5]里面,这里返回值时True
    for 4 in [1,2,3,4] #用在for循环里面,可以遍历整个列表中的元素。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值