首页 > 解决方案 > 如何从 Python 中的 2 个不同列表计算中位数

问题描述

我有两个列表 note = [6,8,10,13,14,17] Effective = [3,5,6,7,5,1] ,第一个代表成绩,第二个代表班级中的学生拿到那个档次。所以 3 个孩子得了 6 和 1 得了 17。我想计算平均值和中位数。我得到的意思是:

note = [6,8,10,13,14,17] 
Effective = [3,5,6,7,5,1] 
products = [] for num1, num2 in zip(note, Effective):   
products.append(num1 * num2) 
print(sum(products)/(sum(Effective)))

我的第一个问题是,如何将两个列表变成第三个列表:

(6,6,6,8,8,8,8,8,10,10,10,10,10,10,13,13,13,13,13,13,13,14,14,14,14,14,17)

为了得到中位数。

谢谢, 东卡

标签: python

解决方案


Effective这是一种在内部级别上迭代的方法,以按照 中number指定的次数复制每个Effective,并使用 获取中位数statistics.median

from statistics import median

out = []
for i in range(len(note)):
    for _ in range(Effective[i]):
        out.append(note[i])
print(median(out))
# 10

推荐阅读