python dict 两种遍历方式的比较
2018-01-08 10:55
155 查看
关于纠结dict遍历中带括号与不带括号的性能问题
带括号和不带括号性能测试结果:
我们可以看出,dict条数在200一下的时候是带括号的性能比较高一点,但是在200条以上的数据后不带括号的执行时间会少些.
下面是测试代码:
测试Code
#-- coding: utf-8 --
import datetime,codecs
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 测试条数:50 10 带括号开始时间:2012-06-14 12:13:57.921000 11 带括号结束时间:2012-06-14 12:13:57.921000 12 时间间隔:0:00:00 13 不带括号开始时间:2012-06-14 12:13:57.921000 14 不带括号结束时间:2012-06-14 12:13:57.937000 15 时间间隔:0:00:00.016000 16 测试条数:100 17 带括号开始时间:2012-06-14 11:53:57.453000 18 带括号结束时间:2012-06-14 11:53:57.468000 19 时间间隔:0:00:00.015000 20 不带括号开始时间:2012-06-14 11:53:57.468000 21 不带括号结束时间:2012-06-14 11:53:57.531000 22 时间间隔:0:00:00.063000 23 24 测试条数:150 25 带括号开始时间:2012-06-14 12:00:54.812000 26 带括号结束时间:2012-06-14 12:00:54.828000 27 时间间隔:0:00:00.016000 28 不带括号开始时间:2012-06-14 12:00:54.828000 29 不带括号结束时间:2012-06-14 12:00:54.921000 30 时间间隔:0:00:00.093000 31 32 测试条数:200 33 带括号开始时间:2012-06-14 11:59:54.609000 34 带括号结束时间:2012-06-14 11:59:54.687000 35 时间间隔:0:00:00.078000 36 不带括号开始时间:2012-06-14 11:59:54.687000 37 不带括号结束时间:2012-06-14 11:59:54.734000 38 时间间隔:0:00:00.047000 39 40 测试条数:500 41 带括号开始时间:2012-06-14 11:54:39.906000 42 带括号结束时间:2012-06-14 11:54:40.078000 43 时间间隔:0:00:00.172000 44 不带括号开始时间:2012-06-14 11:54:40.078000 45 不带括号结束时间:2012-06-14 11:54:40.125000 46 时间间隔:0:00:00.047000 47 48 测试条数:1000 49 带括号开始时间:2012-06-14 11:54:49.171000 50 带括号结束时间:2012-06-14 11:54:49.437000 51 时间间隔:0:00:00.266000 52 不带括号开始时间:2012-06-14 11:54:49.437000 53 不带括号结束时间:2012-06-14 11:54:49.609000 54 时间间隔:0:00:00.172000 55 56 测试条数:2000 57 带括号开始时间:2012-06-14 11:54:58.921000 58 带括号结束时间:2012-06-14 11:54:59.328000 59 时间间隔:0:00:00.407000 60 不带括号开始时间:2012-06-14 11:54:59.328000 61 不带括号结束时间:2012-06-14 11:54:59.687000 62 时间间隔:0:00:00.359000 63 64 测试条数:5000 65 带括号开始时间:2012-06-14 11:55:05.781000 66 带括号结束时间:2012-06-14 11:55:06.734000 67 时间间隔:0:00:00.953000 68 不带括号开始时间:2012-06-14 11:55:06.734000 69 不带括号结束时间:2012-06-14 11:55:07.609000 70 时间间隔:0:00:00.875000 71 72 测试条数:10000 73 带括号开始时间:2012-06-14 11:55:15.656000 74 带括号结束时间:2012-06-14 11:55:17.390000 75 时间间隔:0:00:01.734000 76 不带括号开始时间:2012-06-14 11:55:17.390000 77 不带括号结束时间:2012-06-14 11:55:19.109000 78 时间间隔:0:00:01.719000 79 80 测试条数:20000 81 带括号开始时间:2012-06-14 12:19:14.921000 82 带括号结束时间:2012-06-14 12:19:18.593000 83 时间间隔:0:00:03.672000 84 不带括号开始时间:2012-06-14 12:19:18.593000 85 不带括号结束时间:2012-06-14 12:19:22.218000 86 时间间隔:0:00:03.625000
我们可以看出,dict条数在200一下的时候是带括号的性能比较高一点,但是在200条以上的数据后不带括号的执行时间会少些.
下面是测试代码:
测试Code
#-- coding: utf-8 --
import datetime,codecs
dict = {} for i in xrange(0,20000): dict.setdefault("name"+str(i)) dict["name"+str(i)]="name" s=codecs.open(r'c:\\dict.txt','a', 'utf-8') def write(des): s.write(des.decode("utf-8")) write("测试条数:") write(str(len(dict))+"\r\n") write("带括号开始时间:") a=datetime.datetime.now() s.write(str(a)+"\r\n") for (d,x) in dict.items(): print "key:"+d+",value:"+str(x) write("带括号结束时间:") b=datetime.datetime.now() write(str(b)+"\r\n") write("时间间隔:") write(str(b-a)+"\r\n") write("不带括号开始时间:") c=datetime.datetime.now() write(str(c)+"\r\n") for d,x in dict.items(): print "key:"+d+",value:"+str(x) write("不带括号结束时间:") d=datetime.datetime.now() write(str(d)+"\r\n") write("时间间隔:") write(str(d-c)+"\r\n") write("\r\n") s.close()
相关文章推荐
- python dict 两种遍历方式的比较
- java中Map的两种不同遍历、迭代方式及比较
- 集合框架_Map集合遍历的两种方式比较图解
- HashMap两种遍历方式的效率比较
- Java中HashMap遍历的两种方式比较
- Java中HashMap遍历的两种方式及其效率比较
- HashMap 遍历的两种方式及性能比较
- Map集合遍历的两种方式比较图解
- 遍历获得磁盘文件的两种方式
- JAVA中for循环的两种遍历方式
- 按揭贷款的两种还贷方式比较
- WebService的两种方式SOAP和REST比较
- Java中HashMap遍历的两种方式
- 动态链接库两种调用方式的比较
- 浅析java中遍历map的两种方式
- 等额本金和等额本息两种贷款方式的比较
- 归并排序(MergeSort)两种实现方式比较
- php两种include加载文件方式效率比较
- Java中HashMap遍历的两种方式
- 二叉排序树的建立、插入、删除、查找、比较、4种遍历方式的C++完整实现版