来源:https://segmentfault.com/q/1010000002581747

方法一:直接遍历 速度快

for key in _dict:pass

方法二:iterkeys() 速度快

for _ in testDict.iterkeys():pass

方法三:keys()  速度慢  因为keys()须要形成一个列表,构建一个列表对于一个大的dict开销是很大的。

for _ in testDict.keys():pass

时间对比:

import timeitDICT_SIZE = 100*10000testDict = dict()
for i in range(DICT_SIZE):testDict[i] = i  # 构建大小为100W的字典assert len(testDict) == DICT_SIZEdef test1():for _ in testDict.keys():passdef test2():for _ in testDict:passdef test3():for _ in testDict.iterkeys():pass
# 分别测试2K次
print timeit.timeit("test1()", setup="from __main__ import test1", number=2000)
print timeit.timeit("test2()", setup="from __main__ import test2", number=2000)
print timeit.timeit("test3()", setup="from __main__ import test3", number=2000)

输出
54.1994677764
30.2660675759
31.3075812315

是windows + python 2.7的结果

【python】Python遍历dict的key最高效的方法是什么?相关推荐

  1. python dict添加key 和value_python迭代dict的key和value的方法

    python迭代dict的key和value的方法 迭代dict的key和value 我们了解了如何迭代 dict 的key和value,那么,在一个 for 循环中,能否同时迭代 key和value ...

  2. python dict函数key_python的dict判断key是否存在的方法

    大家在学会python中的字典,会发现,字典中是没有特殊顺序的,但是都存储在一个特定的key下面,key是什么呢?其实key是python字典中的键,可以是数字,也可以是字符串,可以存储任意类型的对象 ...

  3. python判断dict有没有某个key用的方法是_python的dict判断key是否存在的方法

    大家在学会python中的字典,会发现,字典中是没有特殊顺序的,但是都存储在一个特定的key下面,key是什么呢?其实key是python字典中的键,可以是数字,也可以是字符串,可以存储任意类型的对象 ...

  4. python 列表中dict中key排序

    #1列表排序:使用lamada表达式进行排序 student_new=[{'id':1,'name':'无语1','english':100,'python':98},{'id':2,'name':' ...

  5. python list索引遍历_在python中遍历dict和list

    因此,我要从具有字典和多个列表的API中提取JSON中的数据. result=r.json() i=0 x=0 for row in r: print('Driver ID: ',result['lo ...

  6. python遍历替换字典的key_Python遍历字典去key和value需要注意的点→enumerate和items()...

    嗯,首先在提到enumerate()这个枚举方法之前,我想到的就是这个可以遍历任何一个元素,可以打印出来key和value,但是我没有想到的是,这个遍历的,仅仅限于遍历打印出索引和元素. 碰到这个问题 ...

  7. python字典遍历value_Python遍历字典去key和value需要注意的点→enumerate和items()

    嗯,首先在提到enumerate()这个枚举方法之前,我想到的就是这个可以遍历任何一个元素,可以打印出来key和value,但是我没有想到的是,这个遍历的,仅仅限于遍历打印出索引和元素. 碰到这个问题 ...

  8. Python中遍历字典中所有的key和value值

    aa=["xuhaitao","xuhaihuan","xuhairu","lidaiping"] cc={" ...

  9. Python里的dict和set的背后小秘密

    Python里的dict和set的效率有多高? 为什么它们是无序的? 为什么并不是所有的Python对象都可以当作dict的键或set里的元素? 为什么dict的键和set的元素的顺序是根据它们被添加 ...

最新文章

  1. 精讲 MySQL 事务日志:redo log 和 undo log
  2. 《走进SAP(第2版)》——第2章 企业软件的SAP之路2.1 企业资源计划(ERP)...
  3. 文本分类入门(六)训练Part 3
  4. 交叉报表问题 subDataset
  5. Zookeeper: Zookeeper架构及FastLeaderElection机制
  6. ansible-vault_使用Ansible Vault改善您的DevOps安全游戏
  7. 红帽 安装oracle11g,64位RedHat 5.6下安装Oracle 11g
  8. struct interface_GCTT | 接受 interface 参数,返回 struct 在 go 中意味着什么
  9. 给Ionic写一个cordova(PhoneGap)插件
  10. koa2从搭建项目到实现API
  11. howler 音频插件使用
  12. 联想服务器thinkserver TS550 Raid5制作及winserver2012R2 安装过来
  13. 数据结构——顺序表的C语言代码实现
  14. POJ2208 Pyramids 四面体体积
  15. 数字孪生城市,智慧城市可视化技术解决方案案例
  16. c语言程序输出s是什么,C语言中printf格式化输出函数
  17. 当神话故事邂逅 NFT数字藏品:知名艺术家张宏携《西游》拉开元宇宙序幕
  18. C++11生成随机数(random库)
  19. 空间向量模型和tf-idf
  20. mysql单精度双精度相加_单精度与双精度

热门文章

  1. Android开发日常笔记
  2. Java基础:常见对象
  3. c 语言贪心钓鱼思路,2020届九年级中考语文复习教案:第4讲现代文阅读之概括(27页)-原创力文档...
  4. linux下创建proc文件系统,[转载]Linux下的proc文件系统(转载)
  5. Map,HashMap,TreeMap
  6. 如何掌握平面设计中的减法思维
  7. 计算机网络日,《计算机网络原理》教学日历[汇编].pdf
  8. python的迭代器无法输出值_python迭代器和生成器
  9. Java设计模式(十):迭代器设计模式
  10. unity Android 剪贴板,Unity移动端的复制要这么写示例代码