python list列表分组

本文介绍了一种使用Python将包含多个字典的列表按指定键进行分组的方法,并给出具体示例。通过dict.setdefault()函数可以高效地完成这一任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python: group list items in a dict

将一个list中的dict 按某个key分组,生成dict:

input_list = [
        {'a':'tata', 'b': 'foo'},
        {'a':'pipo', 'b': 'titi'},
        {'a':'pipo', 'b': 'toto'},
        {'a':'tata', 'b': 'bar'}
]
output_dict = {
        'pipo': [
             {'a': 'pipo', 'b': 'titi'}, 
             {'a': 'pipo', 'b': 'toto'}
         ],
         'tata': [
             {'a': 'tata', 'b': 'foo'},
             {'a': 'tata', 'b': 'bar'}
         ]
}

最简单的实现-----dict.setdefault():

output_dict = {}
for item in input_list:
    output_dict.setdefault(item['a'], []).append(item)


### 使用 Pandas 进行 Python 列表分组求和 对于列表中元素的分组以及对每组求和的操作,可以借助 `pandas` 库来实现。通过创建一个包含数据及其对应标签(用于分组依据)的数据框,再利用 `DataFrame.groupby()` 方法完成分组操作,并调用 `.sum()` 函数获取各组内的数值汇总。 #### 创建示例数据集 为了展示具体过程,先构建一组简单的测试数据: ```python import pandas as pd data = {'value': [1, 2, 3, 4, 5], 'group_label': ['A', 'B', 'A', 'B', 'A']} df = pd.DataFrame(data) ``` 这段代码初始化了一个名为 `df` 的数据帧对象,它包含了两列:一列为待处理的具体数值 (`value`);另一列为指定这些数值所属类别的标志符(`group_label`)。 #### 执行分组与求和运算 接下来应用 `groupby()` 来基于类别标签进行分组,并计算每一分类下所有成员值的累积量: ```python result = df.groupby('group_label')['value'].sum() print(result) ``` 上述命令会输出如下结果: ``` group_label A 9 B 6 Name: value, dtype: int64 ``` 这里的结果显示了不同标记下的元素相加之和[^1]。 #### 完整代码实例 以下是完整的代码片段,展示了如何读入原始数据、执行分组及求和的过程: ```python import pandas as pd # 构建样本数据 data = {'value': [1, 2, 3, 4, 5], 'group_label': ['A', 'B', 'A', 'B', 'A']} df = pd.DataFrame(data) # 分组并求和 result = df.groupby('group_label')['value'].sum() # 输出最终结果 print(result) ``` 此段脚本实现了从准备数据到获得分组后的累加值得全过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值