Python对含颜色的集合列表按颜色聚合数值求和并返回最高值对应颜色
实现思路
- 先初始化空字典存储各颜色的数值总和
- 遍历每个集合,拆分出集合内的颜色字符串和数字元素
- 按颜色维度累加数字总和
- 最后筛选出总和最高的颜色和对应数值
完整可运行代码
# 声明集合列表 colors = [{"red", 1, 2}, {"red", 2, 4}, {"blue", 1, 2}, {"blue", 1}] color_total = {} for item in colors: # 拆分当前集合的颜色和数字 color = None nums = [] for elem in item: if isinstance(elem, str): color = elem elif isinstance(elem, int): nums.append(elem) # 累加对应颜色的总和 if color not in color_total: color_total[color] = 0 color_total[color] += sum(nums) # 筛选总和最高的颜色 max_color = max(color_total, key=lambda x: color_total[x]) print(max_color, color_total[max_color])
运行输出
red 9
内容的提问来源于stack exchange,提问作者kms
相关产品推荐
相关产品推荐

