使用来自其他字典的字典值创建字典

时间:2021-04-29 08:40:14

标签: python-3.x dictionary

我有这些词典:

x={2020: 40, 2019: 37, 2015: 22, 2016: 9, 2017: 1}
y={2016: 0.0500, 2017: 0.0500, 2019: 0.0527, 2020: 0.0550, 2015: 0.0636}

我想获得这样的东西:

data={2016:{9,0.0500},2017:{9,0.0500},2019:{37,0.0527},2020:{40,0.0550},2015:{22,0.0636}}

我想在我的 dict 中使用 dict 值而不是列表,因为我看到了一种方法可以像我想要的那样使用那种类型的数据来制作图表。

我现在在互联网上没有找到如何做的线索,如果你能帮我一点,谢谢。

非常感谢!

3 个答案:

答案 0 :(得分:2)

假设 xy 具有相同的键,您可以这样做 -

d = dict()
for k,v in x.items():
    d[k] = {v, y[k]}

print(d)

尽管在这种情况下,d 的每个元素都是一个 set,因为字典总是有键值对。

结果:

<块引用>

{2020: {40, 0.055}, 2019: {0.0527, 37}, 2015: {0.0636, 22}, 2016: {0.05, 9},2017 年:{0.05, 1}}

答案 1 :(得分:2)

您想要的格式不可用。因为 {} 表示字典,但您想要的不是字典。相反,你可以使用这个

from collections import defaultdict
x = {2020: 40, 2019: 37, 2015: 22, 2016: 9, 2017: 1}
y = {2016: 0.0500, 2017: 0.0500, 2019: 0.0527, 2020: 0.0550, 2015: 0.0636}
dd = defaultdict(list)

for d in (x, y):
    for key, value in d.items():
        dd[key].append(value)
print(dd)

答案 2 :(得分:1)

x = {2020: 40, 2019: 37, 2015: 22, 2016: 9, 2017: 1}
y = {2016: 0.0500, 2017: 0.0500, 2019: 0.0527, 2020: 0.0550, 2015: 0.0636}

result = {}
for k, v in x.items():
   for k1, v1 in y.items():
     if k == k1:
        result[k] = {v, v1}

print(result)

输出: {2020: {40, 0.055}, 2019: {0.0527, 37}, 2015: {0.0636, 22}, 2016: {0.05, 9}, 2017: {0.05, 1}}