数组去重 多个字段累加
时间: 2023-05-16 17:04:44 浏览: 131
JavaScript对象数组如何按指定属性和排序方向进行排序
可以使用哈希表来实现数组去重和多个字段累加。首先遍历数组,将每个元素的多个字段值作为哈希表的键,将对应的值累加到哈希表中。最后遍历哈希表,将每个键值对转换为数组元素即可。以下是示例代码:
```python
def dedup_and_sum(arr, fields):
hash_table = {}
for item in arr:
key = tuple(item[field] for field in fields)
if key in hash_table:
hash_table[key] += item
else:
hash_table[key] = item
return [value for key, value in hash_table.items()]
# 示例用法
arr = [
{'name': 'Alice', 'age': 20, 'score': 80},
{'name': 'Bob', 'age': 20, 'score': 90},
{'name': 'Alice', 'age': 20, 'score': 70},
{'name': 'Bob', 'age': 21, 'score': 85},
]
result = dedup_and_sum(arr, ['name', 'age'])
print(result)
# 输出 [{'name': 'Alice', 'age': 20, 'score': 150}, {'name': 'Bob', 'age': 20, 'score': 90}, {'name': 'Bob', 'age': 21, 'score': 85}]
```
注意,以上代码只是示例,实际应用中需要根据具体需求进行修改和优化。
阅读全文