首页 > 代码库 > Python学习笔记_字典(Dict)_遍历_不同方法_性能测试对比
Python学习笔记_字典(Dict)_遍历_不同方法_性能测试对比
今天专门把python的字典各种方法对比测试了一下性能效果.
测试代码如下:
1 def dict_traverse(): 2 from time import clock 3 my_dict = {‘name‘: ‘Jim‘, ‘age‘: ‘20‘, ‘height‘: ‘180cm‘, ‘weight‘: ‘60kg‘} 4 5 t_start = clock() 6 for key in my_dict: # 性能最差写法.无优化 7 print ‘Type01.01: %s --- %s‘ % (key, my_dict[key]) 8 t1 = clock() 9 10 for key in my_dict: # 性能较上优,可见get()方法作了优化.11 print ‘Type01.02: %s --- %s‘ % (key, my_dict.get(key))12 t2 = clock()13 14 for key in my_dict.keys(): # keys()方法也是作了优化.15 print ‘Type02.01: %s --- %s‘ % (key, my_dict[key])16 t3 = clock()17 18 for key in my_dict.keys(): # 19 print ‘Type02.02: %s --- %s‘ % (key, my_dict.get(key))20 t4 = clock()21 22 for key, value in my_dict.items(): # 标准写法,性能最佳写法23 print ‘Type03: %s --- %s‘ % (key, value)24 t5 = clock()25 26 for key, value in my_dict.iteritems(): # 性能较上,有少量损失.27 print ‘Type04: %s --- %s‘ % (key, value)28 t6 = clock()29 30 for key, value in zip(my_dict.iterkeys(),my_dict.itervalues()): # 性能较差.31 print ‘Type05: %s --- %s‘ % (key, value)32 t7 = clock()33 34 print ‘********** time cost ******************‘35 print ‘Type01.01 -- total time : ‘, t1-t_start36 print ‘Type01.02 -- total time : ‘, t2-t137 print ‘Type02.01 -- total time : ‘, t3-t238 print ‘Type02.02 -- total time : ‘, t4-t339 print ‘Type03 -- total time : ‘, t5-t440 print ‘Type04 -- total time : ‘, t6-t541 print ‘Type05 -- total time : ‘, t7-t642 43 44 45 if __name__ == ‘__main__‘:46 dict_traverse()
经过多次运行,可发现不同写法,耗时是有差异.
对比结果如下图所示.
综上对比可发现:
对于字典遍历,推荐如下写法,性能最优.
1 for k, v in my_dict.items():2 print k, v
Python学习笔记_字典(Dict)_遍历_不同方法_性能测试对比
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。