python - 如何修改我的代码以提供 dict 数据类型的输入?
问题描述
我的目标:有n个学生的记录。每个记录包含学生的姓名和他们在数学,物理,化学方面的百分比。标记可以是浮动值。您需要将记录保存在字典数据类型中。学生的名字是key.Marks 存储在列表中的是值。用户输入学生的姓名。输出该学生获得的平均百分比分数。这是我的代码:
n = int(input("Enter total number of students:"))
student_marks = {}
for x in range(n):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = scores
student_name = input("Enter name of the student whose average you want:")
print("{0:.2f}".format(round(sum(student_marks[student_name]) / len(student_marks[student_name]), 2)))
我实际上得到了这个输出:
Enter total number of students:3
Krishna 67 68 69
Arjun 70 98 63
Malika 52 56 60
Enter name of the student whose average you want:Malika
56.00
但我希望我的示例输入采用包含标记作为列表的字典形式,即,
Sample input: {'Krishna':[67,68,69],
'Arjun':[70,98,63],
'Malika':[52,56,60]}
如何修改我的代码以提供这样的输入?不使用导入 asl?请帮忙。在此先感谢。
解决方案
嘿,这就是你要找的吗?
不太明白这个问题,但我希望这会有所帮助....
就效率而言可能不是最好的,但它可以完成工作,如果有一个没有成绩的学生将无法工作,但你可以用额外的逻辑来解决它
student_marks = {}
test = {'Krishna':[67,68,69],
'Arjun':[70,98,63],
'Malika':[52,56,60]}
_avg_scores = [sum(test[x])/(len((test[x]))) for x in test.keys()]
average_scores ={ list(test.keys())[i] : avg_scores[i] for i in range(len(_avg_scores)) }
student_name = input("Enter name of the student whose average you want:")
print(average_scores[student_name])
推荐阅读
- r - 比较两组数据的出现情况
- c# - 创建一个包含具有匿名类型的新表达式的 lambda 表达式
- javascript - React:如何在组件的生命周期中只调用一次方法,只要 data.loading 为 false
- python - 从网页获取脚本函数内部的信息
- python - 安装 matplotlib Python 时出错
- react-native - 如何在 React Navigation 中选择性地显示模式?
- php - Reg Exp - preg_match_all 减少数组结果
- r - 文本清理和合并
- excel - 以相同字符串开头的命名范围通配符
- python - 第三个变量的标记样式