Python合并字典的多种方法

字典是Python中特有的数据结构,它包含多个元素,每个元素都是一个键值对。在Python 3.9中,处理Python字典时编写的代码更具可读性也更精简。下面看看Python中合并字典的多种方法。

例如,创建一个字典d1,存储了他的年龄信息。再创建一个字典d2。该字典存储了他的GPA和婚姻状况。

d1 ={ name :  Tom ,  age : 20}

d2 ={ gpa : 4.0,  is_single : True}

现在想将这两个字典合并在一起,该怎么做呢?


1. 笨方法

首先想到的是编写一个for循环,使用iterable .items()在每个键值对上进行迭代,然后将该对插入新的字典dnew中。

d1 ={ name :  Tom ,  age : 20}
d2 = { gpa : 4.0,  is_single : True}

dnew = dict()for key, value in d1.items():
    dnew[key] = value
for key, value in d2.items():
    dnew[key] = value  

# dnew == { name : Tom ,  age : 20,  gpa : 4.0,  is_single : True}

2. 默认方法

实际上,有一个内置方法可以将字典d1与另一个字典d2“更新”。

d1 ={ name :  Tom ,  age : 20}
d2 = { gpa : 4.0,  is_single : True}

dnew = d1.copy()
dnew.update(d2)

缺点是.update()方法会修改原字典。需要先复制d1来创建新字典dnew。


3. “整洁”的方法

Python从版本3.5+起支持字典解压“ ** ”。可以通过解压两个字典中的元素来创建新的“合并”字典。

dnew ={**d1, **d2}

这种解压方法成为Python3.5+合并字典的实际使用的方法。但是,这种语法在某些人看来可能不美观。当初次看到的时候,能猜到是什么意思吗?

还有另一种简洁的方法可以用一行代码就将字典合并。

dnew = dict(d1, **d2)

4. Python 3.9中干净的方法

Python 3.9引入了一种新的方法,使用联合运算符“|”合并字典,非常简洁。

该联合运算符实际上在Python中并不新鲜。它可以用于“合并”两个集合。集合是无序且未索引的集合,也用花括号括起来。

d1 ={ name :  Tom ,  age : 20}
d2 = { gpa : 4.0,  is_single : True}

dnew = d1 | d2
print(dnew)

# { name :  Tom ,  age : 20,  gpa : 4.0,  is_single : True}

拓展赋值: 对于两个列表或两个值a和b,a += b是a = a + b的缩写。这种拓展赋值行为也适用于字典联合运算符。这意味着d1 | = d2等于d1 = d1 | d2。


注意: 集合是无序的,字典是按顺序插入的(Python 3.6),即字典会记住插入元素的顺序。这意味着字典并集是不可交换的。d1 | d2和d2 | d1将导致合并的字典元素顺序不同。


感谢大家的耐心阅读,如有建议请私信或评论留言

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值