如何将多个字典合并?

在stackoverflow中看到的这个问题。现有两个字典,使用update方法

Python
x = {'a':1, 'b': 2} y = {'b':10, 'c': 11} z = x.update(y) print(z) print(x)
1
2
3
4
5
6
x = { 'a' : 1 , 'b' : 2 }
y = { 'b' : 10 , 'c' : 11 }
 
z = x . update ( y )
print ( z )
print ( x )

 

结果z却是空,x却被改变了。

Python
None {'a': 1, 'b': 10, 'c': 11}
1
2
None
{ 'a' : 1 , 'b' : 10 , 'c' : 11 }

 

字典这种数据结构我经常用到,咱们今天就尝试几种字典合并的方法(字典结果仅限一层)。

方法1

入门Python的人谁都能想到的方法(我也是想到的这个办法)

Python
result = dict(x) #检测发现result和x不指向同一个地址 print(id(result)==id(x)) for k,v in y.items():    if k in result:        result[k] = result[k]+v        else:        result[k] = v        print(result) False {'a': 1, 'b': 12, 'c': 11}
1
2
3
4
5
6
7
8
9
10
11
12
13
result = dict ( x )
 
#检测发现result和x不指向同一个地址
print ( id ( result ) == id ( x ) )
 
for k , v in y . items ( ) :
    if k in result :
        result [ k ] = result [ k ] + v    
    else :
        result [ k ] = v
        print ( result )
False
{ 'a' : 1 , 'b' : 12 , 'c' : 11 }

方法2

这个方法简洁清奇,印象深刻。

 

Python
#新建一个字典,使用**传递key-value对 x = {'a':1, 'b': 2} y = {'b':10, 'c': 11} z = {**x, **y} print(z)
1
2
3
4
5
6
7
8
#新建一个字典,使用**传递key-value对
x = { 'a' : 1 , 'b' : 2 }
 
y = { 'b' : 10 , 'c' : 11 }
 
z = { * * x , * * y }
 
print ( z )

{'a': 1, 'b': 10, 'c': 11}




  • zeropython 微信公众号 5868037 QQ号 5868037@qq.com QQ邮箱
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值