请教大神,希望能多写点注释~~
大家一起在学习单词时,会对学习的单词评分,评分越高,单词越难。现在每个人都对10个单词评分,不同的人可能对同一个单词评分,求最简单的单词。最简单的单词必须被评过分。如果单词被多个人评分,它的综合评分是这些评分的平均数,最后求的是综合评分最小的单词。不会出现多个最简单单词。提示:请用字典实现。输入:(注意,所有的input()语句均不要带提示信息。)
第一行team,表示有team组数据。
对于每组数据:
第一行num,表示有num个人。
接下来输入num*10行,每一行有一个单词,一个整数(表示评分),由空格隔开。
输出:
对于每组数据,输出最简单的单词。
测试程序时,样例输入与样例输出请见作业附件“04_作业9-素材.txt”文件中的相关内容。即:运行程序后,将输入样例的内容拷贝到输入位置(注意拷贝时,光标要定位在最后一行内容的下一行空白行的首部),程序运行结果为输出样例的内容,则程序运行通过。
3.找最简单的单词。输入样例与输出样例:
输入样例:
2
2
ability 10
able 1
about 2
above 3
abroad 4
absent 5
accent 6
accept 7
accident 8
accord 9
apple 2
able 10
about 4
above 5
abroad 3
absent 5
accent 6
accept 7
accident 8
accord 9
1
ability 10
able 1
about 2
above 3
abroad 4
absent 5
accent 6
accept 7
accident 8
accord 9
样例输出
apple
able
代码如下:
#!/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 = (disk + float(v)) / flag
# 如果是新单词k,则将单词与评分对应放入字典
else:
disk = float(v)
# 用min函数求得字典中值最小的对应键key,即评分平均分最小的单词,存入定义好的列表
min_word = min(disk.items(), key=lambda x: x)
team_result.append(min_word)
# 打印每个小组的结果
for each in team_result:
print(each)
结果于实例一样:
页:
[1]