from statistics import mean
from operator import itemgetter
l = [['Hussain', 7, 8, 0], ['Max', 3, 4, 3], ['Alexandra', 10, 9, 8]]
print(sorted(([ele[0],mean(ele[1:])] for ele in l),key=itemgetter(1),reverse=True))
[['Alexandra', 9.0], ['Hussain', 5.0], ['Max', 3.3333333333333335]]
如果您不使用python>;=3.4,您可以手动进行平均值计算。你知道吗
print(sorted(([ele[0],sum((ele[1:])) / len(l) - 1] for ele in l),key=itemgetter(1),reverse=True))
如果您不使用python>;=3.4,您可以手动进行平均值计算。你知道吗
ele[0],mean(ele[1:])
获取名称和剩余的元素(即分数),然后使用itemgetter(1)
(分数/秒元素)作为键进行排序,并将reverse=True
设置为从高到低。你知道吗我还将使用
itertools.islice
获取切片,以避免使用普通切片构建新列表:或不使用平均值:
相关问题 更多 >
编程相关推荐