有比这个更简洁的写法吗?
list_1 = [99, 96, 97.5, 89, 95.5, 93, 99, 95, 98, 99.5]
list_2 = [91, 95.5, 97, 92, 99, 98, 94, 95.5, 96, 99]
list_3 = [90.5, 92, 99, 99.5, 95, 90, 97, 96, 93, 91.5]
list_4 = [98, 95, 95.5, 99, 92, 93.5, 93, 97.5, 96, 99.5]
list_5 = [95, 91.5, 93, 96, 98.5, 99, 94, 96.5, 95.5, 92]
list_1.remove(max(list_1))
list_1.remove(min(list_1))
list_2.remove(max(list_2))
list_2.remove(min(list_2))
list_3.remove(max(list_3))
list_3.remove(min(list_3))
list_4.remove(max(list_4))
list_4.remove(min(list_4))
list_5.remove(max(list_5))
list_5.remove(min(list_5))
avg_1 = sum(list_1)/len(list_1)
avg_2 = sum(list_2)/len(list_2)
avg_3 = sum(list_3)/len(list_3)
avg_4 = sum(list_4)/len(list_4)
avg_5 = sum(list_5)/len(list_5)
print('第一位选手最后得分为:\t{}\n第二位选手最后得分为:\t{}\n第三位选手最后得分为:\t{}\n第四位选手最后得分为:\t{}\n第五位选手最后得分为:\t{}\n'.format(avg_1, avg_2, avg_3, avg_4, avg_5))21
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕凡
2023-01-02 09:53:18
同学,你好!
有更简洁的写法,可以使用循环执行一些重复操作,同学可以继续往后学习,学习一下循环,参考代码如下:
list_1 = [99, 96, 97.5, 89, 95.5, 93, 99, 95, 98, 99.5]
list_2 = [91, 95.5, 97, 92, 99, 98, 94, 95.5, 96, 99]
list_3 = [90.5, 92, 99, 99.5, 95, 90, 97, 96, 93, 91.5]
list_4 = [98, 95, 95.5, 99, 92, 93.5, 93, 97.5, 96, 99.5]
list_5 = [95, 91.5, 93, 96, 98.5, 99, 94, 96.5, 95.5, 92]
lists=[list_1,list_2,list_3,list_4,list_5]
sum_total = []
#使用循环计算list_1到list_5的最终得分,并添加到sum_total列表中
for list_i in lists:
list_i.remove(max(list_i))
list_i.remove(min(list_i))
sum_total.append(sum(list_i) / len(list_i))
lst = []
for index, num in enumerate(sum_total):
lst.append([index + 1, num])
#排序
# key--主要是用来进行比较的元素,i是lst列表中的元素,i[1]是元素列表中的值
result = sorted(lst, key=lambda i: i[1])
for i in result:
print('第{}位的得分是{}'.format(i[0], i[1]))祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16416 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星