如何将两个python字典合并到这样的两对列表中?

如何将两个python字典合并到这样的两对列表中?,python,list,dictionary,Python,List,Dictionary,例如,我有两本字典,如下所示 >>> x = {'a':1, 'b': 2} >>> y = {'b':10, 'c': 11} 经过一番手术后,我能得到这两份名单吗?先谢谢你 x=['a','b','c'] y=[1,2,0] z=[0,10,11] 这意味着x列表中的“c”不会出现在y列表中,因此y列表的相应位置中没有。通过将字典的键转换为集合并使用集合,创建字典的统一键集 然后使用字典()的.get方法仅选择其中包含的键(或0如果不包含):

例如,我有两本字典,如下所示

>>> x = {'a':1, 'b': 2}

>>> y = {'b':10, 'c': 11}
经过一番手术后,我能得到这两份名单吗?先谢谢你

x=['a','b','c']

y=[1,2,0] 

z=[0,10,11] 

这意味着x列表中的“c”不会出现在y列表中,因此y列表的相应位置中没有。通过将字典的键转换为集合并使用
集合,创建字典的统一键集

然后使用字典()的
.get
方法仅选择其中包含的键(或
0
如果不包含):


或者,作为简单代码:

s = sorted(set(x) | set(y))
a = [x.get(k, 0) for k in s]
b = [y.get(k, 0) for k in s]

您还可以使用
.keys()
方法来获得统一的密钥列表(
x.keys()==set(x)
),如@wim所述:

s = sorted(x.keys() | y.keys())

通过将字典的键转换为集合并使用
|
集合,创建字典的一组统一键

然后使用字典()的
.get
方法仅选择其中包含的键(或
0
如果不包含):


或者,作为简单代码:

s = sorted(set(x) | set(y))
a = [x.get(k, 0) for k in s]
b = [y.get(k, 0) for k in s]

您还可以使用
.keys()
方法来获得统一的密钥列表(
x.keys()==set(x)
),如@wim所述:

s = sorted(x.keys() | y.keys())

到目前为止你试过什么?你能展示你的代码并解释一下目前在你的实现中什么是不起作用的吗?到目前为止你尝试了什么?你能展示一下你的代码并解释一下目前在你的实现中什么是不起作用的吗?这里我唯一关心的是OP是否希望它与a,b,c的顺序有关。但最终我也会采用这种方法。你可以使用
x.viewkeys()| y.viewkeys()
(或者在python3上使用
.keys()
)我很惊讶地看到
x.keys()| y.keys()
。它不适用于Python2<代码>类型错误:不支持|:'list'和'list'的操作数类型。有趣的是,Python3支持这种操作,您不需要调用keys或viewkeys两次<代码>排序(x.keys()| y)可以正常工作。请继续我自己的评论。在Python3上
dict.keys()
返回
dict_keys
对象,该对象具有用于设置操作的良好运算符和方法。与Python2有很大的不同。这里我唯一关心的是OP是否希望它与a,b,c的顺序有关。但最终我也会采用这种方法。你可以使用
x.viewkeys()| y.viewkeys()
(或者在python3上使用
.keys()
)我很惊讶地看到
x.keys()| y.keys()
。它不适用于Python2<代码>类型错误:不支持|:'list'和'list'的操作数类型。有趣的是,Python3支持这种操作,您不需要调用keys或viewkeys两次<代码>排序(x.keys()| y)可以正常工作。请继续我自己的评论。在Python3上
dict.keys()
返回
dict_keys
对象,该对象具有用于设置操作的良好运算符和方法。与Python2大不相同。