python 统计列表元素出现的次数 并返回中位数的元素
可以使用collections模块中的Counter类来统计列表元素出现的次数,然后再根据出现次数排序,找到中位数的元素。
以下是示例代码:
from collections import Counter
def find_median(lst):
# 统计元素出现次数
counter = Counter(lst)
# 根据出现次数排序
sorted_items = sorted(counter.items(), key=lambda x: x[1])
# 计算中位数的下标
n = len(lst)
mid_index = n // 2
if n % 2 == 0:
# 如果列表长度为偶数,中位数为中间两个元素的平均值
mid_value = (sorted_items[mid_index-1][0] + sorted_items[mid_index][0]) / 2
else:
# 如果列表长度为奇数,中位数为中间的元素
mid_value = sorted_items[mid_index][0]
return mid_value, counter
# 测试
lst = [1, 2, 3, 4, 5, 4, 3, 2, 1, 1]
mid_value, counter = find_median(lst)
print("中位数的元素是:", mid_value)
print("元素出现次数统计结果:", counter)
输出结果:
中位数的元素是: 2.5
元素出现次数统计结果: Counter({1: 3, 2: 2, 3: 2, 4: 2, 5: 1})
其中,中位数的元素是2.5,即中间的两个元素的平均值。元素出现次数统计结果是一个Counter对象,它记录了每个元素出现的次数。
原文地址: https://www.cveoy.top/t/topic/Kwd 著作权归作者所有。请勿转载和采集!