Luk*_*zko 5 python merge python-3.x
这是我当前的代码:
A = {1 : "one", 2 : "two"}
B = {2 : "dva", 3 : "three"}
d = {}
for key in set(list(A.keys()) + list(B.keys())):
try:
d.setdefault(key,[]).append(A[key])
except KeyError:
pass
try:
d.setdefault(key,[]).append(B[key])
except KeyError:
pass
print(d)
Run Code Online (Sandbox Code Playgroud)
这是我目前得到的结果:
{1: ['one'], 2: ['two', 'dva'], 3: ['three']}
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能得到如下所示的结果?
{1 : "one", 2 : ["two", "dva"], 3 : "three"}
Run Code Online (Sandbox Code Playgroud)
dict您可以首先使用运算符创建一个新的**:
new_dict = {**A, **B}
>>> new_dict
{1: 'one', 2: 'dva', 3: 'three'}
Run Code Online (Sandbox Code Playgroud)
然后for对set键的交集进行循环:
>>> for dupe_key in set(A) & set(B):
... new_dict[dupe_key] = [A[dupe_key], B[dupe_key]]
...
>>> new_dict
{1: 'one', 2: ['two', 'dva'], 3: 'three'}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8684 次 |
| 最近记录: |