|  | 
 
 发表于 2019-11-29 17:07:32
|
显示全部楼层 
| 代码如下: 
 复制代码#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2019/11/7 15:12
# Author  : PC加班狗
# @Software: PyCharm
# 定义小组的输入,取整数用来循环
team = int(input())
# 建立1个列表存放循环后每个小组产生的最小得分单词,用于后面的打印
team_result = []
# 对每个小组进行循环
for a in range(0, team):
    # 需要输入人数,并建立1个字典来存放单词对应打分的情况
    num = int(input())
    disk = {}
    # 对每个单词打分,1人打10次
    for i in range(0, num*10):
        # 设置1个计数器flag,设置输入的单词与评分按空格拆分成k,v
        flag = 1
        k, v = input().split()
        # k做键,v做值
        # 如果k单词已经存放在了字典中,计数器+1,k对应的评分v重新赋值
        if k in disk:
            flag += 1
            # v重新赋值为原有v值加现有v值的和除以计数器,得平均数,更新字典
            disk[k] = (disk[k] + float(v)) / flag
        # 如果是新单词k,则将单词与评分对应放入字典
        else:
            disk[k] = float(v)
    # 用min函数求得字典中值最小的对应键key,即评分平均分最小的单词,存入定义好的列表
    min_word = min(disk.items(), key=lambda x: x[1])[0]
    team_result.append(min_word)
# 打印每个小组的结果
for each in team_result:
    print(each)
 结果于实例一样:
 
 | 
 
单词评分运行结果   |