问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python内置数据类型列表list和字典dict的性能

发布网友 发布时间:2022-11-22 14:44

我来回答

1个回答

热心网友 时间:2023-11-06 15:47

    我们来讨论下python的两种最重要的内置数据类型列表list和字典dict上,各种操作的复杂度。

list列表数据类型常用操作性能:

1、按索引取值和赋值(v=a[i],a[i]=v)

由于列表的随机访问特性,这两个操作执行时间与列表大小无关,均为O(1)

2、列表的曾长,可以选择append()和_add_() "+"

list.append(v)的执行时间O(1)

list = list + [v],执行时间是O(n+k),因为新增了一个新的列表,其中k是被加的列表长度

举例:4种生成前n个整数列表的方法

如图:

我们可以计算一下这四个函数的耗时,如下

执行结果:

我们可以看到,4种方法运行时间差别很大,test1使用列表连接最慢,而test4使用list range最快,速度相差近200倍。

    如下图,我们总结下list基本操作的性能如何:

上图可知pop()从列表末尾移除元素O(1),但是pop(i)从列表中间移除元素要O(n),为什么呢?

因为从中部移除元素,要把移除元素后面的元素全部向前挪一位,才保证了列表按索引取值和赋值很快,达到O(1)。

dict数据类型:

    字典和列表不同,dict根据key找到value,而list根据index。

    字典最常用的取值get和赋值set,其性能为O(1),而contain(in)操作判断字典是否存在某个key,其性能也是O(1)

list和dict的in操作对比:

    设计一个性能试验,验证list中检索一个值,对比dict中检索一个值的耗时对比。如下程序:

如果如下:

可见list的in操作复杂度为O(n)

PS:大家可以去python官方的算法复杂度网站看看:

https://wiki.python.org/moin/TimeComplexity
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
会计中级什么时候拿证 会计中级职称什么时候领取 手机中毒后恢复出厂设置就可以了吗? 手机中病毒后如何清除? 做代购初期怎么找客源,微商代购怎么找精准客 ...代购,都是阿迪耐克正品。怎么才能把微商做好。 做微商和代购,有哪些引流获客的方法? 250㎜的水泥撑棍一捆多少根? 吊顶一平要多少丝杠 ...断开电源,一端接地,这个时候把极板远离,为什么是两极板电压变大而... 付亚龙医生是在北京天健医院出诊吗?挂号费多少钱? 二手车贷款30万利息多少 云南老红糖和超市卖的红糖区别在哪 不只有黄果树!贵州这些少有人踏足的小众景点,美爆了 贵州冷门小众景点 小米手机自动连点器在哪 北大徐冲现状 小米10pro换屏指纹用不了 买超薄本,现在要买的就是那种配置高,就是大概几年后还能用的不错,适用... 求13寸或14寸笔记本推荐 看车问题-四个月的库存车能提吗 混动车库存4个多月了,能要吗? 卖了三元催化,给了一个新的能用多久 浅谈世界各国最受欢迎MPV,塞纳、别克GL8上榜,有几款让人意外 奔驰凌特四驱越野房车 一屏展吗,金边一时有一时没有怎么回事 为什么我的Internet主页一打开会出现“内容审查程序”的对话框_百度知... 后台app刷新web是什么 电脑防火强墙被禁止了。怎么重新启用 2017年1月9日nba西部排名? 土卫六的介绍 太阳系里,最像地球的星球-土卫六 最有希望孕育生命的土卫六,被发现狰狞的一面,表面沙尘暴肆虐_百度知 ... 土卫六和地球有多相似?科学家:有山有海有大气,很可能存在生物 晚上睡觉感觉身体很累,并且不停的做梦,怎么办? 手机卡顿反应慢,怎么办 vivo手机otg在哪里打开 我家前一任业主把电磁炉嵌在厨房台面上了,我想换个电陶炉,就买个普通... 电磁炉加块铁能改造成电热炉吗 长春南湖--南岭新技术工业园区管理的若干规定 西北家具工业园的管理职能划分 怎么让三星gear s3是的表盘一直是长亮的 三星手表gear s3不显示通知 宝马760老板键怎么恢复 OPPO 手机如何调试侧边栏录屏功能? 喜宝奶粉怎么样辨别真假、真假鉴别图 喜宝奶粉官网怎么查真伪 全球购喜宝奶粉防伪码 醒狮可以随便买吗 ...大跌?天康生物股票2021季报?天康生物股算龙头股吗?