Python怎么去掉最低最高分然后取平均值,然后再按照由平均值由高到低的顺序输出选手的编号以及得分
>>> lst = [2,5,7,1,6,5]
>>> lst = sorted(lst)[1:-1]
>>> average = sum(lst)/len(lst)
>>> average
4.5
实现方法很多种,给出一种。
1.每个选手的编号和分数存储的问题解决,比如用一个list,第一个数字代表选手编号,后面的数字代表得分;
2.函数1,去最高最低,求平均分的任务。输入为选手的list就行,返回平均分。list中去掉选手编号形成新list,找到其中的最大值和最小值(numpy有函数),求出新list的长度和和值,用和值去掉最大最小值再除以(len-2)就能得出你要的均值;
3.返回的均值补在选手list的最后即可。
4.排序,利用各个选手均值重新排序,由高到低。
5.输出就行了。