博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python dict 两种遍历方式的比较
阅读量:6452 次
发布时间:2019-06-23

本文共 3460 字,大约阅读时间需要 11 分钟。

关于纠结dict遍历中带括号与不带括号的性能问题

1 for (d,x) in dict.items():2     print "key:"+d+",value:"+str(x)3 4 for d,x in dict.items():5     print "key:"+d+",value:"+str(x)

带括号和不带括号性能测试结果:

测试结果
1 测试条数:15 2 带括号开始时间:2012-06-14 12:13:37.375000 3 带括号结束时间:2012-06-14 12:13:37.375000 4 时间间隔:0:00:00 5 不带括号开始时间:2012-06-14 12:13:37.375000 6 不带括号结束时间:2012-06-14 12:13:37.375000 7 时间间隔:0:00:00 8  9 测试条数:5010 带括号开始时间:2012-06-14 12:13:57.92100011 带括号结束时间:2012-06-14 12:13:57.92100012 时间间隔:0:00:0013 不带括号开始时间:2012-06-14 12:13:57.92100014 不带括号结束时间:2012-06-14 12:13:57.93700015 时间间隔:0:00:00.01600016 测试条数:10017 带括号开始时间:2012-06-14 11:53:57.45300018 带括号结束时间:2012-06-14 11:53:57.46800019 时间间隔:0:00:00.01500020 不带括号开始时间:2012-06-14 11:53:57.46800021 不带括号结束时间:2012-06-14 11:53:57.53100022 时间间隔:0:00:00.06300023 24 测试条数:15025 带括号开始时间:2012-06-14 12:00:54.81200026 带括号结束时间:2012-06-14 12:00:54.82800027 时间间隔:0:00:00.01600028 不带括号开始时间:2012-06-14 12:00:54.82800029 不带括号结束时间:2012-06-14 12:00:54.92100030 时间间隔:0:00:00.09300031 32 测试条数:20033 带括号开始时间:2012-06-14 11:59:54.60900034 带括号结束时间:2012-06-14 11:59:54.68700035 时间间隔:0:00:00.07800036 不带括号开始时间:2012-06-14 11:59:54.68700037 不带括号结束时间:2012-06-14 11:59:54.73400038 时间间隔:0:00:00.04700039 40 测试条数:50041 带括号开始时间:2012-06-14 11:54:39.90600042 带括号结束时间:2012-06-14 11:54:40.07800043 时间间隔:0:00:00.17200044 不带括号开始时间:2012-06-14 11:54:40.07800045 不带括号结束时间:2012-06-14 11:54:40.12500046 时间间隔:0:00:00.04700047 48 测试条数:100049 带括号开始时间:2012-06-14 11:54:49.17100050 带括号结束时间:2012-06-14 11:54:49.43700051 时间间隔:0:00:00.26600052 不带括号开始时间:2012-06-14 11:54:49.43700053 不带括号结束时间:2012-06-14 11:54:49.60900054 时间间隔:0:00:00.17200055 56 测试条数:200057 带括号开始时间:2012-06-14 11:54:58.92100058 带括号结束时间:2012-06-14 11:54:59.32800059 时间间隔:0:00:00.40700060 不带括号开始时间:2012-06-14 11:54:59.32800061 不带括号结束时间:2012-06-14 11:54:59.68700062 时间间隔:0:00:00.35900063 64 测试条数:500065 带括号开始时间:2012-06-14 11:55:05.78100066 带括号结束时间:2012-06-14 11:55:06.73400067 时间间隔:0:00:00.95300068 不带括号开始时间:2012-06-14 11:55:06.73400069 不带括号结束时间:2012-06-14 11:55:07.60900070 时间间隔:0:00:00.87500071 72 测试条数:1000073 带括号开始时间:2012-06-14 11:55:15.65600074 带括号结束时间:2012-06-14 11:55:17.39000075 时间间隔:0:00:01.73400076 不带括号开始时间:2012-06-14 11:55:17.39000077 不带括号结束时间:2012-06-14 11:55:19.10900078 时间间隔:0:00:01.71900079 80 测试条数:2000081 带括号开始时间:2012-06-14 12:19:14.92100082 带括号结束时间:2012-06-14 12:19:18.59300083 时间间隔:0:00:03.67200084 不带括号开始时间:2012-06-14 12:19:18.59300085 不带括号结束时间:2012-06-14 12:19:22.21800086 时间间隔:0:00:03.625000

 

我们可以看出,dict条数在200一下的时候是带括号的性能比较高一点,但是在200条以上的数据后不带括号的执行时间会少些.

下面是测试代码:

测试Code
1 #-*- coding: utf-8 -*- 2 import datetime,codecs 3  4 dict = {} 5  6 for i in xrange(0,20000): 7     dict.setdefault("name"+str(i)) 8     dict["name"+str(i)]="name" 9 10 s=codecs.open(r'c:\\dict.txt','a', 'utf-8')11 12 def write(des):13     s.write(des.decode("utf-8"))14 15 write("测试条数:")16 write(str(len(dict))+"\r\n")17 write("带括号开始时间:")18 a=datetime.datetime.now()19 s.write(str(a)+"\r\n")20 21 for (d,x) in dict.items():22     print "key:"+d+",value:"+str(x)23 write("带括号结束时间:")24 b=datetime.datetime.now()25 write(str(b)+"\r\n")26 write("时间间隔:")27 write(str(b-a)+"\r\n")28 29 write("不带括号开始时间:")30 c=datetime.datetime.now()31 write(str(c)+"\r\n")32 for d,x in dict.items():33     print "key:"+d+",value:"+str(x)34 write("不带括号结束时间:")35 d=datetime.datetime.now()36 write(str(d)+"\r\n")37 write("时间间隔:")38 write(str(d-c)+"\r\n")39 write("\r\n")40 s.close()

中文乱码问题有没有很好的解决办法....?

转载于:https://www.cnblogs.com/waising/articles/2549116.html

你可能感兴趣的文章
Java之美[从菜鸟到高手演变]之设计模式二
查看>>
python的数字签名示例
查看>>
Linux删除目录下的文件的几种方法
查看>>
了解Excel条件格式规则优先级
查看>>
Java 获取可用 UDP 端口号的方法
查看>>
maven错误总结
查看>>
***掉自已公司的网站,留下记录
查看>>
我的友情链接
查看>>
音乐双雄 DynamicLyrics+MusicSeekerX
查看>>
San
查看>>
windbg 如何再内核模式调试用户空间的程序
查看>>
态度是什么
查看>>
Terraform 使用 - 从最简单例子开始
查看>>
杭州楼市是"健康的"
查看>>
Cas3.4 验证码添加!
查看>>
hibernate视图无主键解决办法
查看>>
Android:内存控制及OOM处理
查看>>
希尔排序
查看>>
tomcat7 虚拟主机设置笔记
查看>>
MFC之托盘
查看>>