各位用户为了找寻关于Python合并两个字典的常用方法与效率比较的资料费劲了很多周折。这里教程网为您整理了关于Python合并两个字典的常用方法与效率比较的相关资料,仅供查阅,以下为您介绍关于Python合并两个字典的常用方法与效率比较的详细内容
本文实例讲述了Python合并两个字典的常用方法与效率比较。分享给大家供大家参考。具体分析如下:
下面的代码举例了5种合并两个字典的方法,并且做了个简单的性能测试
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39#!/usr/bin/python
import
time
def
f1(d1, d2):
return
dict
(d1,
*
*
d2)
def
f2(d1, d2):
return
dict
(d1.items()
+
d2.items())
def
f3(d1, d2):
d
=
d1.copy()
d.update(d2)
return
d
def
f4(d1, d2):
d1.update(d2)
return
d1
def
f5(d1, d2):
d
=
dict
(d1)
d.update(d2)
return
d
def
f6(d1, d2):
return
(
lambda
a, b: (
lambda
a_copy: a_copy.update(b)
or
a_copy)(a.copy()))(d1, d2)
def
f7(d1, d2):
d
=
{}
d.update(d1)
d.update(d2)
return
d
def
t(f, n):
st
=
time.time()
for
i
in
range
(
1000000
):
dic1
=
{
'a'
:
'AA'
,
'b'
:
'BB'
,
'c'
:
'CC'
}
dic2
=
{
'A'
:
'aa'
,
'B'
:
'bb'
,
'C'
:
'cc'
}
f(dic1, dic2)
et
=
time.time()
print
'%s cost:%s'
%
(n, et
-
st)
t(f1,
'f1'
)
t(f2,
'f2'
)
t(f3,
'f3'
)
t(f4,
'f4'
)
t(f5,
'f5'
)
t(f6,
'f6'
)
t(f7,
'f7'
)
除了f4方法会对字典d1造成破坏性修改之外,另外的几种方法都是把合并的结果作为新的字典返回。
下面是测试结果:
? 1 2 3 4 5 6 7f1 cost:
2.382999897
f2 cost:
4.45399999619
f3 cost:
3.02100014687
f4 cost:
1.73000001907
f5 cost:
2.3710000515
f6 cost:
2.89700007439
f7 cost:
2.35600018501
可以看出f4最为高效,如果不需要保留原字典的话推荐使用f4方法。
希望本文所述对大家的Python程序设计有所帮助。