Python中对元组列表内同名元素的数值求和方法
解决元组列表同名元素数值求和问题
你可以借助字典来实现这个需求,核心思路是用单位+食材名称作为唯一标识(避免不同单位的同名食材混淆),用字典值来累计对应数量,具体实现步骤如下:
- 初始化一个空字典,用于存储每种食材的累计数量
- 遍历原元组列表,对每个元组拆分出数量、单位、食材名
- 以
(单位, 食材名)作为字典的键,将数量累加到对应键的值中(如果键不存在就初始化为当前数量) - 最后把字典中的键值对转换回要求的元组格式
示例代码:
original_list = [ (300.0, 'g', 'peanuts'), (0.5, 'tsp', 'salt'), (2.0, 'tsp', 'oil'), (300.0, 'g', 'peanuts'), (1.0, 'tsp', 'salt'), (3.0, 'tsp', 'oil') ] total_dict = {} for amount, unit, name in original_list: key = (unit, name) if key in total_dict: total_dict[key] += amount else: total_dict[key] = amount # 转换为目标格式的列表 result = [(value, key[0], key[1]) for key, value in total_dict.items()] print(result)
运行后会输出:
[(600.0, 'g', 'peanuts'), (1.5, 'tsp', 'salt'), (5.0, 'tsp', 'oil')]
内容的提问来源于stack exchange,提问作者Jiayi Meng
相关产品推荐
相关产品推荐

