list-列表常用操作和时间复杂度分析

本文详细介绍了Python列表的基本操作,包括增删改查、排序、切片等,并解释了各种操作的时间复杂度,帮助读者理解列表的工作原理及高效使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表list是动态创建的,也就是说列表占用的内存空间可以不断发生变化。

增加列表数据
操作解释时间复杂度
list.append(x)list末尾添加数据xO(1)
list.insert(index, x)index索引位置插入x,后面的元素往后移一个单位O(N)

删除列表元素
操作解释时间复杂度
list.pop(index)删除并返回list[index]O(N)
del list[index]仅删除list[index]O(N)
list.pop()删除并返回最后一个元素O(1)
list.remove(x)删除下标最小的list中的xO(N)

查找元素
list[index]返回下标index元素,index>=0O(1)
list[-index]返回倒数第index个元素,index>=0O(1)

修改list
list[index]  = x O(1)

排序

排序
list.sort()在原列表上进行排序O(N*logN)
sorted(list)返回排序后的列表,但是原列顺序不变同上

 

切片

切片非常重要,在任何项目中,都会用的到的一种非常好用的方法。但是使用不合理,会增加时间复杂度。

 

切片 等价于 拷贝一个副本,需要消耗一定的时间复杂度进行切割,如果切片进行赋值后,将存储在新的内存中,此时切片和原列表是两块内存空间。例如:a = b[5:10]。深拷贝

而简单的列表赋值,两个变量将指向同一个存储单元, a = b。 此时a 和b完全等价,只是变量名不用。

切片
list[x:y]返回list列表下标x ~ y-1 的子列表O(N)
将切片(副本)传给函数,可以防止函数修改原列表数据

 

其他常用操作

常用操作
list.reverse()原列表元素倒序O(N)
len(list)列表长度O(1)
list(range(5))创建数字列表O(N)

max(list),

min(list),

sum(list)

求列表最大值,最小值,求和O(N)
x = [t**2 for t in range(5)]列表解析,快速生成满足某规律的列表O(N)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值