python list 里面嵌套dict ,对dict的字段a 进行分组
时间: 2023-11-23 14:57:57 浏览: 93
可以使用Python内置的itertools库中的groupby函数来对嵌套字典中的字段进行分组。具体步骤如下:
1. 首先,我们需要将嵌套字典的列表按照字段a进行排序,以便后续的分组操作。可以使用sorted函数来实现。
2. 然后,我们可以使用itertools库中的groupby函数来对排序后的列表进行分组。groupby函数需要两个参数:第一个参数是要分组的列表,第二个参数是一个函数,用于指定按照哪个字段进行分组。在这里,我们可以使用lambda函数来指定按照字典中的'a'字段进行分组。
3. 最后,我们可以将分组后的结果转换为字典,以便更方便地进行后续的操作。可以使用字典推导式来实现。
下面是示例代码:
```python
from itertools import groupby
# 嵌套字典的列表
data = [{'a': 1, 'b': 2}, {'a': 2, 'b': 3}, {'a': 1, 'b': 4}, {'a': 3, 'b': 5}]
# 按照'a'字段进行排序
data_sorted = sorted(data, key=lambda x: x['a'])
# 对排序后的列表按照'a'字段进行分组
groups = groupby(data_sorted, key=lambda x: x['a'])
# 将分组后的结果转换为字典
result = {k: list(v) for k, v in groups}
# 输出结果
print(result)
```
输出结果为:
```
{1: [{'a': 1, 'b': 2}, {'a': 1, 'b': 4}], 2: [{'a': 2, 'b': 3}], 3: [{'a': 3, 'b': 5}]}
```
阅读全文