如何将两个python词典联合到这两个列表?

时间:2016-10-22 18:31:32

标签: 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列表的相应位置为零。

1 个答案:

答案 0 :(得分:4)

创建一组字典的统一密钥,方法是将其密钥转换为集合并使用|union operator

然后使用词典.get方法(see here)仅选择其中包含的键(如果未包含,则选择0):

>>> x = {'a':1, 'b': 2}
>>> y = {'b':10, 'c': 11}
>>> s = sorted(set(x) | set(y))
>>> a = [x.get(k, 0) for k in s]
>>> b = [y.get(k, 0) for k in s]
>>> s
['a', 'b', 'c']
>>> a
[1, 2, 0]
>>> b
[0, 10, 11]

或者,简单的代码:

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())