如何合并字典对并丢弃每个字典的一个子集。

7 浏览
0 Comments

如何合并字典对并丢弃每个字典的一个子集。

问题陈述:

我正在使用Python 3.5,非常喜欢新的字典合并语法:

 merged = {**A, **B}

但是,如果你只想要 AB 中的一些子集键怎么办呢?

 A_keys = [some small subset of the keys from A]
 B_keys = [some small subset of the keys from B]
 merged = ???

admin 更改状态以发布 2023年5月23日
0
0 Comments

你可以将新的记法与这个问题的答案结合起来,用于从字典中选择某些键:

merged = { **{ k:A[k] for k in A.keys() & A_keys }, **{ k:B[k] for k in B.keys() & B_keys }}

即使A_keys或B_keys中的某些值不是A或B中的真正键,这也可以运行。

0
0 Comments

使用字典推导式来解决:

A = { 'one': '1', 'two': '2', 'three': '3' }
B = { 'four': '4', 'five': '5', 'six': '6' }
A_keys = ['one', 'two']
B_keys = ['five']
merged = {**{k:v for k,v in A.items() if k in A_keys}, **{k:v for k,v in B.items() if k in B_keys}}

0