【问题标题】:Comparing two dictionary keys and values比较两个字典键和值
【发布时间】:2016-09-07 13:47:45
【问题描述】:

我有两个字典,我试图首先在 d2 中从 d1 中找到匹配的键,然后从两个字典中输出该键中第三个值的减法。这可以在一个循环函数中完成吗?首先我尝试分两步执行,但这给了我一个 d3 的空列表,然后我尝试使用循环,但它给了我 v 未定义的错误。

d1 = {'alpha': [5, 9, 11], 'beta': [6, 10, 20], 'gamma': [12, 15, 19]}
d2 = {'alpha': [3, 8, 20], 'omega': [15, 32, 40], 'ro': [22, 25, 4]}

d3 = {}
for key in d1:
    if key in d2:
        d3.setdefault(key, []).append
print d3
#Should be d3 = {'alpha': [3, 8, 20]}

#Compare and Calculate the difference between 20 and 11 in the alpha key
value = d3(key, v(2)) - d1(key, v(2))
print value
#value = 9

#Can a loop just find the key in d2 and that matches key in d1
#and calculate the difference?
for key in d1:
    if key in d2:
        value = d2(key, v(2)) - d1(key, v(2))
        print value

想法?

谢谢。 -乔恩

【问题讨论】:

  • 不仅v没有定义而且d1d2不是函数,所以不能写d1(...)

标签: python-2.7 loops dictionary key


【解决方案1】:

您可以使用字典理解:

diff = {key: d2[key][2] - d1[key][2] for key in d2 if key in d1}
# {'alpha': 9}

这将为您提供一个字典,其中所有键都是 d2d1 共有的,值是 d1d2 列表中第三个值的差

【讨论】:

  • 谢谢!我知道有一种方法可以做到这一点,但我不确定确切的语法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
相关资源
最近更新 更多