【问题标题】:Python do a lookup between 2 dictionariesPython 在两个字典之间进行查找
【发布时间】:2015-06-17 04:14:19
【问题描述】:

我正在尝试总结两本词典如下:

mydict = {41100: 'Health Grant',
 50050: 'Salaries',
 50150: 'Salaries',
 50300: 'Salaries'};
mytb = {'': '',
 41100: -3,450,200.40,
 50050: 1,918,593.96,
 50150: 97.50,
 50300: 8,570.80}

我的输出应该是:

{“健康补助金”:-3450200.40,“薪水”:1927262.26 }

您能帮忙编写for循环代码吗?

【问题讨论】:

  • 您应该先尝试创建循环,然后再寻求帮助。请记住,该站点可以帮助可能有相同问题的其他人。搜索“python lloops”后可以完成类似的操作
  • @Sandman 问题相似,但不重复。字典具有相同的键,但 OP 希望使用第一个字典中的值作为结果中的键。

标签: python-2.7 dictionary lookup


【解决方案1】:

只需迭代第一个字典的键和值,并添加第二个字典中对应相同键的值。

mydict = {41100: 'Health Grant', 50050: 'Salaries', 50150: 'Salaries', 50300: 'Salaries'};
mytb = {'': '', 41100: -3450200.40, 50050: 1918593.96, 50150: 97.50, 50300: 8570.80}

result = {}
for key, value in mydict.items():
    result[value] = result.get(value, 0) + mytb[key]

或者使用collections.defaultdict:

from collections import defaultdict
result = defaultdict(int)
for key, value in mydict.items():
    result[value] += mytb[key]

在这两种情况下,result 将是 {'Health Grant': -3450200.4, 'Salaries': 1927262.26}

【讨论】:

    猜你喜欢
    • 2016-08-16
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 2010-11-24
    相关资源
    最近更新 更多