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_start
36     print ‘Type01.02 -- total time : ‘, t2-t1
37     print ‘Type02.01 -- total time : ‘, t3-t2
38     print ‘Type02.02 -- total time : ‘, t4-t3
39     print ‘Type03 -- total time : ‘, t5-t4
40     print ‘Type04 -- total time : ‘, t6-t5
41     print ‘Type05 -- total time : ‘, t7-t6
42
43
44
45 if __name__ == ‘__main__‘:
46     dict_traverse()

经过多次运行,可发现不同写法,耗时是有差异.

对比结果如下图所示.  

综上对比可发现:

对于字典遍历,推荐如下写法,性能最优.

1 for k, v in my_dict.items():
2     print k, v 
时间: 2024-10-11 11:34:06

Python学习笔记_字典(Dict)_遍历_不同方法_性能测试对比的相关文章

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

python 学习笔记day05-python字典和集合、条件和循环、文件和输入输出

字典和集合 字典基础操作 创建字典 通过{}操作符创建字典 通过dict()工厂函数创建字典 通过fromkeys()创建具有相同值的默认字典 >>> aDict = {'Name':'Bob','age':23}                >>> import tab                >>> bDict = dict((['name','bob'],['age',23]))                >>> p

【Python学习笔记】字典操作

字典dict是Python中唯一内置的映射类型,由键值对组成,字典是无序的.字典的键必须是不变对象,如字符串.数字.元组等,而包含可变对象的列表.字典和元组则不能作为键.这里可变和不可变的意思是指这个可以对象可以被哈希,内置函数hash()可以用来测试对象是否可被哈希.字典的值可以为任何对象.下文中用k来表示键,用v来表示值,字典的形式为d = {k1:v1, k2:v2,..., kn:vn} 字典的创建 1. 使用{ }创建 student = {"name": "Jac

Python学习笔记四--字典与集合

字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={} dict2={'name':John,'age':24} 使用dict()函数创建字典. dict()函数接受序列,或关键字参数作为参数创建字典.若不提供参数则创建空字典. dict1=dict([['x',1],['y',2]])#接受list作为参数创建字典 dict2=dict(x=1.y

python学习笔记(字典)

字典的使用 现实中的字段及在python中的字段都进行了构建,从而可以轻松查到某个特定的词语(键),从而找到它的意义(值). 某些情况下,字典比列表更加适用: # 表征游戏棋盘的状态,每个键都是由坐标值组成的元组: # 存储文件修改次数,用文件名作为键: # 数字电话/地址本 创建一个人名列表,以及四位的分机号码: >>> names=['Alice','Beth','Ceci','Dee-Dee','Earl']>>> numbers=['2341','9102','

Python学习之路-字典dict常用方法

字典特性: dict无序 key唯一,天生去重 创建字典: way1:小心列表坑 1 __author__ = "KuanKuan" 2 d = dict.fromkeys([1, 2, 3], ["name", "age"]) 3 print("字典:", d) 4 5 d[1][0] = "mmph好坑" 6 print("修改后:",d) 7 """

Python学习笔记四,dict和set

dict是字典dictionary的缩写,他存放的是键值对key/value,用花括号表示,格式为d={'micheal':99,'jack':88} 当我们访问的时候直接print(d['micheal'])#输出相应的99: 可以给dict复制并且会覆盖掉原来的value,但是如果key没有对应的value就会报错, 通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:print(d.get('tomash'))#会输出none 在dict中如果有重复

python学习笔记4:字典

python学习笔记4:字典 总结:字典是可变变量: 字典是不排序的,所以不能像列表,元组,字符串一样,切片 1.定义字典dict  --花括号{},字典的只是key-value形式 比如:stu={'name':'zhangying','age':18,'score'=99} 2.key取值,get()方法取值 1)dictname[key] , 取key对应的value值,如果不存在,报错 2)dictname.get(key) , 取key对应的value值,如果不存在,返回none:还可

python学习笔记(五)之字典2

python学习笔记(五)之字典2编程实战中经常用到实例1:copy >> ad = {"name":"wtf","hig":"180"}>> bd = ad>> bd{'name': 'wtf', 'hig': '180'}>> id (ad)4539954352>> id (bd)4539954352说明:一个对象贴上两个标签,使用赋值,实现了所谓的"假

python学习笔记2—python文件类型、变量、数值、字符串、元组、列表、字典

python学习笔记2--python文件类型.变量.数值.字符串.元组.列表.字典 一.Python文件类型 1.源代码 python源代码文件以.py为扩展名,由pyton程序解释,不需要编译 [[email protected] day01]# vim 1.py #!/usr/bin/python        print 'hello world!' [[email protected] day01]# python 1.py hello world! 2.字节代码 Python源码文件