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

如何合并字典列表

龚镜
2023-03-14
问题内容

带有字典列表,例如:

user_course_score = [
    {'course_id': 1456, 'score': 56}, 
    {'course_id': 316, 'score': 71}
]
courses = [
    {'course_id': 1456, 'name': 'History'}, 
    {'course_id': 316, 'name': 'Science'}, 
    {'course_id': 926, 'name': 'Geography'}
]

将它们组合到以下词典列表中的最佳方法是什么:

user_course_information = [
    {'course_id': 1456, 'score': 56, 'name': 'History'}, 
    {'course_id': 316, 'score': 71, 'name': 'Science'}, 
    {'course_id': 926, 'name': 'Geography'} # Note: the student did not take this test
]

还是最好以其他方式存储数据,例如:

courses = {
    '1456': 'History',
    '316': 'Science',
    '926': 'Geography'
}

谢谢你的帮助。


问题答案:

这是一个可能的解决方案:

def merge_lists(l1, l2, key):
    merged = {}
    for item in l1+l2:
        if item[key] in merged:
            merged[item[key]].update(item)
        else:
            merged[item[key]] = item
    return merged.values()

courses = merge_lists(user_course_score, courses, 'course_id')

产生:

[{'course_id': 1456, 'name': 'History', 'score': 56},
 {'course_id': 316, 'name': 'Science', 'score': 71},
 {'course_id': 926, 'name': 'Geography'}]

如您所见,我使用字典(“合并”)作为中途点。当然,您可以通过以不同的方式存储数据来跳过步骤,但这还取决于这些变量可能具有的其他用途。

祝一切顺利。



 类似资料:
  • 问题内容: 我该如何列出这样的词典列表。 …变成这样的单个字典: 问题答案: 这适用于任何长度的字典: 作为一个理解:

  • 问题内容: 我正在尝试合并三个具有相同键,值列表或单个值的字典。 我需要将值中的所有项目添加到一个列表中。 我尝试了几种方法,但是大多数方法将值放入嵌套列表中。例如 我尝试通过遍历值来更新它: 但结果完全一样。我试图简单地添加列表,但是由于第三个字典只有一个浮点数,所以我做不到。 因此,我尝试首先以1和2的值添加列表,然后附加3的值。添加列表效果很好,但是当我尝试从第三个字典中添加浮点数时,突然整

  • 本文向大家介绍Python合并字典,包括了Python合并字典的使用技巧和注意事项,需要的朋友参考一下 示例 考虑以下字典: Python 3.5+ 如本示例所示,重复的键映射到它们的最后一个值(例如,“ Clifford”覆盖“ Nemo”)。 Python 3.3以上 使用此技术,给定键的最前值优先,而不是最后一个(“ Clifford”被抛弃,取而代之的是“ Nemo”)。 Python 2

  • 本文向大家介绍Python如何合并多个字典或映射,包括了Python如何合并多个字典或映射的使用技巧和注意事项,需要的朋友参考一下 问题 现在有多个字典或者映射,你想将它们从逻辑上合并为一个单一的映射后执行某些操作,比如查找值或者检查某些键是否存在。 解决方案 加入你有如下两个字典: 现在假设你必须在两个字典中执行查找操作(比如先从a中找,如果找不到再在b中找)。一个非常简单扼解决方案就是使用co

  • 问题内容: 我目前正在使用ansible来安装PHP,并且在合并字典时遇到了一些困难。我尝试了几种方法来做到这一点,但是我无法像我想要的那样使它工作: 有没有办法合并两个字典,所以我可以将其与“ with_dict”一起使用? 问题答案: 在Ansible 2.0中,为此有一个Jinja过滤器:

  • 本文向大家介绍python 将列表里的字典元素合并为一个字典实例,包括了python 将列表里的字典元素合并为一个字典实例的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 返回结果: {'aa': 'aa', 'cc': 'cc', 'dd': 'dd', 'bb': 'bb'} 补充知识:python操作excel,将每行信息放在字典里,所有信息放在一个列表里