django 查询出来的东西经常是这样子的
In [118]: a
Out[118]: [{'id': 1, 'total': 10}, {'id': 2, 'total': 20}]
In [119]: b
Out[119]: [{'id': 1, 'sum': 10324}, {'id': 2, 'sum': 21230}]
a,b 的长度相同,里面每个字典 id 也都是一样的(可能顺序不同)。 我在想怎么把它们合并起来,变成这个样子
Out[120]: [{'id': 1, 'sum': 10324, 'total': 10}, {'id': 2, 'sum': 21230, 'total': 20}]
没有想出来什么好办法(时间上),只能两层 for 循环 加 if 判断,各位有什么办法吗???
1
JackeyGao 2016-06-01 13:55:14 +08:00
```
>>> a = [{'id': 1, 'total': 10}, {'id': 2, 'total': 20}] >>> b = [{'id': 1, 'sum': 10324}, {'id': 2, 'sum': 21230}] >>> [ dict(x.items() + y.items()) for x, y in zip(a, b) ] [{'sum': 10324, 'total': 10, 'id': 1}, {'sum': 21230, 'total': 20, 'id': 2}] >>> ``` |
2
xss 2016-06-01 13:58:33 +08:00
hash_array = {}
for each_item in a+b : if each_item['id'] not in hash_array : hash_array[each_item['id']] = {'total':each_item['total']} #或者是 sum,自己判断吧,这里只说意思 else : hash_array[each_item['id']]['sum'] = each_item['sum'] |