list根据某个字段去重并统计
时间: 2023-07-07 16:20:36 浏览: 93
可以使用 Python 中的 defaultdict 和 Counter 两个类来实现。
假设有以下数据:
```
data = [
{'name': 'Alice', 'age': 23, 'city': 'New York'},
{'name': 'Bob', 'age': 25, 'city': 'New York'},
{'name': 'Charlie', 'age': 23, 'city': 'San Francisco'},
{'name': 'David', 'age': 28, 'city': 'San Francisco'},
{'name': 'Alice', 'age': 23, 'city': 'New York'},
{'name': 'Bob', 'age': 25, 'city': 'New York'}
]
```
要根据 `city` 字段去重并统计数量,可以使用以下代码:
```
from collections import defaultdict, Counter
result = defaultdict(int)
for d in data:
result[d['city']] += 1
result = dict(Counter(result))
print(result)
```
输出结果为:
```
{'New York': 2, 'San Francisco': 2}
```
其中,`defaultdict(int)` 创建了一个默认值为 0 的字典,`result[d['city']] += 1` 统计了每个城市出现的次数,`Counter(result)` 统计了每个出现次数的个数,最终得到了结果字典。
阅读全文