当前位置: 首页 > 面试题库 >

用Python“添加”字典吗?

叶德本
2023-03-14
问题内容

我的输入是两个具有字符串键和整数值的字典。我想添加两个字典,以便结果具有输入字典的所有键,并且值是输入字典值的总和。

为了清楚起见,如果键仅出现在输入中的一个中,则该键/值将出现在结果中,而如果键同时出现在两个字典中,则值的总和将出现在结果中。

例如,说我的输入是:

a = dict()
a['cat'] = 1
a['fish'] = 10
a['aardvark'] = 1000

b = dict()
b['cat'] = 2
b['dog'] = 200
b['aardvark'] = 2000

我希望结果是:

{'cat': 3, 'fish': 10, 'dog': 200, 'aardvark': 3000}

知道Python必须做到这一点(实际上并不一定要一行……)。有什么想法吗?


问题答案:

那个怎么样:

dict( [ (n, a.get(n, 0)+b.get(n, 0)) for n in set(a)|set(b) ] )

或不创建中间列表(生成器就足够了):

dict( (n, a.get(n, 0)+b.get(n, 0)) for n in set(a)|set(b) )

圣经经文:

正如注释者正确解决的那样,有一种方法可以使用新的(来自Py2.7的)collections.Counter类更轻松地实现这一点。我记得,当我写下答案时,此版本不可用:

from collections import Counter
dict(Counter(a)+Counter(b))


 类似资料:
  • 问题内容: 创建密钥后,是否可以向Python字典添加密钥?它似乎没有方法。 问题答案:

  • 问题内容: 我想自动将键添加到Python字典(如果还不存在)。例如, 如果密钥不存在,如何自动创建密钥? 问题答案: 使用:

  • 问题内容: 我想将一个项目添加到Python中的现有字典中。例如,这是我的字典: 我想添加一个新项目,例如: 我该如何实现? 问题答案: default_data[‘item3’] = 3 像py一样容易。 另一个可能的解决方案: 如果您想一次插入多个项目,这很好。

  • 本文向大家介绍python实现给字典添加条目的方法,包括了python实现给字典添加条目的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现给字典添加条目的方法,是针对字典操作中比较实用的技巧。分享给大家供大家参考。 具体实现方法如下: 本文测试环境为Python2.7.6 程序运行结果如下: 希望本文所述对大家Python程序设计的学习有所帮助。

  • 问题内容: 如果满足某些条件,您将如何向字典中的值添加一个常数,例如1。 例如,如果我有字典: 如果我只是想将整数1添加到字典中的每个值,那么它将dict这样更新: 当我使用以下代码(其中Cur_FID是字典“ 0”中的第一个)时,它的值为5?它应该给我4。 我想为所有值加1,但是在第一次字典更新做一些奇怪的操作时就停在这里。 问题答案: 一种简单的方法是使用对象,在大多数情况下,您可以像普通字典

  • 问题内容: 我有两本字典,我希望能够使它们合二为一: 像这样的伪Python会很不错: 问题答案: 如果您有兴趣在不使用中间存储的情况下创建新字典:(这比使用dict.items()更快,而且我认为这更干净) 或者,如果您很乐意使用现有字典之一: