python中如何找到列表中最接近平均值的数

歌唱比赛有十个评委,分别给出一到一百分,除去一个最高分,除去一个最低分,剩余8个人的给分平均值作为选手的最终得分,编写一个程序找出评分最公平的评委


import random

score_list = [random.randint(1, 10) for i in range(10)]
print("原始的打分列表:%s" % (score_list))
score_list_temp = score_list.copy()
max_value = max(score_list)
min_value = min(score_list)
score_list_temp.remove(max_value)
score_list_temp.remove(min_value)
mean = sum(score_list_temp) / len(score_list_temp)
print("去掉最高最低分后的列表:%s, 平均分为:%s" % (score_list_temp, mean))
# 将打分顺序以及与平均分的差存在字典中,并按差值排序
fair_dict = {idx: abs(score - mean) for idx, score in enumerate(score_list, start=1)}
sorted_list = sorted(fair_dict.items(), key=lambda x: x[-1])

print("打分公平的裁判有:")
for item in sorted_list:
    if item[-1] == sorted_list[0][-1]:
        print('第%s位' % item[0])
    else:
        break

执行结果:

img

有帮助的话,请点采纳该答案~

scores = list(map(int, input().split()))
avg = (sum(scores) - max(scores) - min(scores)) / 8
distance = [abs(i-avg) for i in scores]
ans, mindis = 1, distance[0]
for idx, dis in enumerate(distance, 1):
    if dis < mindis:
        mindis = dis
        ans = idx
print(f"第{ans}位评委最公平")
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7683224
  • 你也可以参考下这篇文章:使用Python分析网易云歌曲评论信息,通过可视化处理我发现了这些有趣的规律
  • 除此之外, 这篇博客: python-从酷狗下载爬取自己想要的音乐-可以直接拿来体验哟中的 一:我想要的是一个搜索接口,根据自己想要下载的歌曲来抓取数据 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述
    在这里插入图片描述

    打开这个包我们可以得到我们想要的结果,找到了search_url ,我们可以先拿下来,稍后做分析

    Request URL:https://songsearch.kugou.com/song_search_v2?callback=jQuery112403044970993079412_1583928714071&keyword=%E5%B9%B4%E5%B0%91%E6%9C%89%E4%B8%BA&page=1&pagesize=30&userid=-1&clientver=&platform=WebFilter&tag=em&filter=2&iscorrection=1&privilege_filter=0&_=1583928714073

    这个url里面,经过各种调试,可以得出一些结论,
    callback=jQuery112403044970993079412_1583928714071:这一个东西用来提高搜索结果准确度的
    keyword=%E5%B9%B4%E5%B0%91%E6%9C%89%E4%B8%BA:这个就是我们搜索框的关键字
    page=1:就是第一页
    pagesize=30:就是搜索结果返回30条数据
    _=1583928714073:这个参数是必须带上的,不然请求会失败
    其余的好像去了也可以,也没出什么问题,但是带上也没关系,不会有害处

    所以我们可以构建自己的search_url,更具关键字自己调就好