打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python dict 两种遍历方式的比较

python dict 两种遍历方式的比较

关于纠结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条以上的数据后不带括号的执行时间会少些.

下面是测试代码:

 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()

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

来自:http://www.cnblogs.com/waising/articles/2549116.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python网络爬虫选择日期提交得到数据
字符串处理
c# 当前时间与数字互相转换
从零开始学 Python——数据类型及结构
利用Python实现量化交易股票策略
重磅----网格交易支持股票,可转债,ETF,自定义等,提供源代码,打包程序。
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服