有比这个更简洁的写法吗?

有比这个更简洁的写法吗?

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))


正在回答 回答被采纳积分+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]))

祝学习愉快~

  • 从这里往下就看不懂了

    for index, num in enumerate(sum_total):

    2023-03-12 16:17:30
  • 同学,你好!sum_total 是存储各同学最后分数的列表。循环时使用enumerate函数可获取sum_total的索引和索引对应的值。for 后的index 是sum_total的索引,num 是sum_total 列表索引相对应的值,如下图输出:

    https://img1.sycdn.imooc.com//climg/640e8a7209ac5e0b06690601.jpg


    祝学习愉快~


    2023-03-13 10:34:38
  • enumerate函数这个没有讲过吧?再就是在这个习题所涉及到的学习进度中就直接引入后面才要学的循环方式是不是不妥!

    2023-03-22 23:07:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师