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

用相同的键将两个词典组合成一个词典?

谭卜鹰
2023-03-14
问题内容

我在这里浏览了一些问题,但这些问题似乎都不是我的问题。假设我有2个字典,它们是dict1

{'A': 25 , 'B': 41, 'C': 32}

和字典2

{'A':21, 'B': 12, 'C':62}

我正在编写一个程序,需要将它们结合到一个字典finaldict中

{'A': [25 , 21], 'B': [41, 12], 'C': [32, 62]}

非常感谢您的帮助,我一直在努力,现在已经一无所获


问题答案:

这是通用版本。即使只有键之一存在键,也可以用它来创建一个以值作为列表的字典。

dic1 = {'A': 25, 'B': 41, 'C': 32}
dic2 = {'A': 21, 'B': 12, 'C': 62}
result = {}
for key in (dic1.keys() | dic2.keys()):
    if key in dic1: result.setdefault(key, []).append(dic1[key])
    if key in dic2: result.setdefault(key, []).append(dic2[key])

print(result)

输出量

{'A': [25, 21], 'C': [32, 62], 'B': [41, 12]}

如果您使用的是Python 2,则必须像这样更改for循环:

for key in (dic1.viewkeys() | dic2.keys()):


 类似资料:
  • 假设我有超级碗是弹性搜索中文档属性的值。术语查询超级碗如何与超级碗匹配? 我读过字母标记器和单词定界符,但它们似乎都不能解决我的问题。基本上,我希望能够将一个大词的组合转换为有意义的词的组合。 https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-word-delimiter-tokenfilter.htm

  • 问题内容: 我有以下两个玩具字典 我想得到一个唯一的字典,在其中我将第二个字典值堆叠在第一个字典之后,并放在相同的方括号内。 我尝试了以下代码 但是我获得的输出在每个键的列表中有两个列表,即 而我想获得 如何使用一行或两行代码来实现? 问题答案: 您几乎拥有了它,而是使用了附加两个列表的方法:

  • 问题内容: 给定一个像这样的字典: 如何创建一个字典列表,该列表结合了第一个字典键的各种值?我想要的是: 问题答案: 我认为您想要笛卡尔积,而不是排列,在这种情况下可以提供帮助:

  • 我找到了一个解决方案,但速度非常慢: 不使用外部模块(Numpy等),你有什么想法吗?

  • 问题内容: 我找到了一个解决方案,但确实很慢: 您有没有使用外部模块(numpy等)的任何想法? 问题答案: 由于字典很大,因此最好将所有涉及的项都保留为迭代器和生成器,像这样 样品运行: 输出量

  • 问题 你有一组对象,例如: cats = [ { name: "Bubbles" age: 1 }, { name: "Sparkle" favoriteFood: "tuna" } ] 但是你想让它像词典一样,可以通过关键字访问它,就像使用 cats["Bubbles"]。 解决方案 你需要将你的数组转换为一个对象。通过这样使用 reduce: #