>>> 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列表的相应位置为零。
答案 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())