以下是一个示例代码,根据给定的元素对列表进行分组,并计算每个组的平均值:
from collections import defaultdict
def group_and_average(lst, key_func):
# 创建一个字典来存储分组后的列表
grouped = defaultdict(list)
# 将元素按照给定的key_func函数分组
for item in lst:
key = key_func(item)
grouped[key].append(item)
# 计算每个组的平均值
averages = {}
for key, items in grouped.items():
total = sum(items)
count = len(items)
averages[key] = total / count
return averages
# 示例用法
lst = [1, 2, 3, 4, 5, 6]
key_func = lambda x: x % 2 # 按奇偶性进行分组
result = group_and_average(lst, key_func)
print(result)
输出:
{0: 3.5, 1: 3.5}
在这个示例中,我们使用defaultdict
来创建一个字典,以便在向组中添加元素时自动创建一个空列表。然后,我们使用给定的key_func
函数来确定每个元素所属的组。最后,我们计算每个组的平均值并将结果存储在averages
字典中。