将列表按照指定的规则排序并添加平均值

简介: 将列表按照指定的规则排序并添加平均值

要将列表按照指定的规则排序并添加平均值,您可以使用Python的列表排序和统计函数来实现。以下是一种可能的解决方案:

from collections import defaultdict

a_list = [['黑色', 110], ['白色', 120], ['黑色', 113], ['红色', 121], ['白色', 111], ['白色', 102]]

# 创建一个字典来存储每个颜色对应的值列表
color_dict = defaultdict(list)

# 将值添加到对应颜色的列表中
for color, value in a_list:
    color_dict[color].append(value)

result = []

# 遍历字典中的每个颜色和对应的值列表
for color, values in color_dict.items():
    # 对值列表进行排序
    sorted_values = sorted(values)
    # 计算平均值
    average_value = sum(sorted_values) / len(sorted_values)

    # 将排序后的值列表添加到结果中
    for value in sorted_values:
        result.append([color, value])

    # 将平均值添加到结果中
    result.append([color, average_value])

# 打印结果
for item in result:
    print(item)

运行以上代码,您将得到所需的结果:

['黑色', 110]
['黑色', 113]
['黑色', 111.5]
['白色', 102]
['白色', 111]
['白色', 120]
['白色', 111.0]
['红色', 121]
['红色', 121.0]

注意,平均值是根据排序后的值列表计算得出的。

目录
相关文章
|
4月前
leetcode-6133:分组的最大数量
leetcode-6133:分组的最大数量
46 0
|
1天前
不排序列表
不排序列表。
10 5
|
1天前
排序列表
排序列表。
8 3
|
11月前
|
人工智能 BI 索引
【Leetcode -598.范围求和Ⅱ -599.两个列表的最小索引总和】
【Leetcode -598.范围求和Ⅱ -599.两个列表的最小索引总和】
37 0
|
4月前
|
Java 测试技术
统计满足条件的子集个数
统计满足条件的子集个数
37 0
|
iOS开发 索引
LeetCode--1773. 统计匹配检索规则的物品数量
给你一个数组 items ,其中 items[i] = [typei, colori, namei] ,描述第 i 件物品的类型、颜色以及名称。 另给你一条由两个字符串 ruleKey 和 ruleValue 表示的检索规则。 如果第 i 件物品能满足下述条件之一,则认为该物品与给定的检索规则 匹配 : ruleKey == "type" 且 ruleValue == typei 。 ruleKey == "color" 且 ruleValue == colori 。 ruleKey == "name" 且 ruleValue == namei 。 统计并返回 匹配检索规则的物品数量 。
76 0
|
索引 Python
LeetCode 599. 两个列表的最小索引总和
假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。
90 0
Python list 按区间分组统计各组个数
Python list 按区间分组统计各组个数