list 根据id分组
时间: 2023-07-20 07:44:09 浏览: 38
可以使用 Python 的 defaultdict 和列表推导式来实现根据 id 分组:
```python
from collections import defaultdict
# 假设有如下列表
lst = [
{'id': 1, 'name': 'Alice'},
{'id': 2, 'name': 'Bob'},
{'id': 1, 'name': 'Charlie'},
{'id': 3, 'name': 'David'},
{'id': 2, 'name': 'Edward'},
]
# 使用 defaultdict 和列表推导式根据 id 分组
grouped = defaultdict(list)
for item in lst:
grouped[item['id']].append(item)
# 输出结果
print(dict(grouped))
```
输出结果为:
```
{1: [{'id': 1, 'name': 'Alice'}, {'id': 1, 'name': 'Charlie'}],
2: [{'id': 2, 'name': 'Bob'}, {'id': 2, 'name': 'Edward'}],
3: [{'id': 3, 'name': 'David'}]}
```
其中,`defaultdict(list)` 创建了一个默认值为列表的字典,`grouped[item['id']].append(item)` 将每个元素根据 id 分组。最终,将 defaultdict 转换为普通字典,输出结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)