小编edk*_*kay的帖子

基于Python中的公共值合并/加入字典列表

我有两个字典列表(作为Django查询集返回).每个字典都有一个ID值.我想根据ID值将两者合并为一个词典列表.

例如:

list_a = [{'user__name': u'Joe', 'user__id': 1},
          {'user__name': u'Bob', 'user__id': 3}]
list_b = [{'hours_worked': 25, 'user__id': 3},
          {'hours_worked': 40, 'user__id': 1}]
Run Code Online (Sandbox Code Playgroud)

我想要一个函数来产生:

list_c = [{'user__name': u'Joe', 'user__id': 1, 'hours_worked': 40},
          {'user__name': u'Bob', 'user__id': 3, 'hours_worked': 25}]
Run Code Online (Sandbox Code Playgroud)

其他要点:

  • 列表中的ID可能不是相同的顺序(与上面的示例一样).
  • 列表可能具有相同数量的元素,但是如果它们不是,而是保留list_a中的所有值(基本上list_a OUTER JOIN list_b USING user__id),我想要考虑该选项.
  • 我已经尝试在SQL中执行此操作,但这是不可能的,因为某些值是基于一些排除的聚合.
  • 可以安全地假设user__id由于使用了数据库查询,每个列表中最多只有一个字典相同.

非常感谢你的时间.

python django

12
推荐指数
2
解决办法
3033
查看次数

标签 统计

django ×1

python ×1