Python列表/字典操作 时间复杂度
系统
1877 0
Python 列表/字典操作时间复杂度
#1 环境
Python3.7.3
#2 List
|
操作
|
操作说明
|
时间复杂度
|
|
index(value)
|
查找list某个元素的索引
|
O(1)
|
|
a = index(value)
|
索引赋值
|
O(1)
|
|
append(value)
|
队尾添加
|
O(1)
|
|
pop()
|
队尾删除
|
O(1)
|
|
pop(index)
|
根据索引删除某个元素
|
O(n)
|
|
insert(index, value)
|
根据索引插入某个元素
|
O(n) iterration
|
|
search(in)
|
列表搜索(其实就是in关键字)
|
O(n)
|
|
slice [x:y]
|
切片, 获取x, y为O(1), 获取x,y 中间的值为O(k)
|
O(k)
|
|
del slice [x:y]
|
删除切片,删除切片后数据需要重新移动/合并
|
O(n)
|
|
reverse
|
列表反转
|
O(n)
|
|
sort
|
排序
|
O(nlogn)
|
#3 Dict
|
操作
|
操作说明
|
时间复杂度
|
|
copy
|
复制
|
O(n)
|
|
get(value)
|
获取
|
O(1)
|
|
set(value)
|
修改
|
O(1)
|
|
delete(value)
|
删除
|
O(1)
|
|
search(value)
|
字典搜索
|
O(1)
|
|
iterration(value)
|
字典迭代
|
O(n)
|
# 字典的特性
-
查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
-
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。不允许同一个键出现两次。
键必须不可变,所以可以用数字,字符串或元组充当,所以用列表就不行。
-
dict的第二个特点就是存储的key-value序对是没有顺序的!这和list不一样。
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元