[英]I am trying to find an average of input values in dictionary using for loop?
if __name__ == '__main__':
n = int(input())
student_marks = {}
for _ in range(n):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = scores
query_name = input()
sum=0
if query_name in student_marks:
for i in student_marks[query_name]:
sum+=i
x=float(sum/len(scores))
print("%.2f"%x)
我已經這樣做了,但想以更少的行數執行
您可以將求和循環替換為:
if query_name in student_marks:
total = sum(student_marks[query_name])
mean = total / len(student_marks[query_name])
print("%.2f" % mean)
您還可以預先計算每個學生的平均值並將其存儲在該字典中以開始:
for _ in range(n):
name, *line = input().split()
record = {'scores': list(map(float, line))}
record['total'] = sum(record['scores'])
record['n'] = len(record['scores'])
student_marks[name] = record
或者:
for _ in range(n):
name, *line = input().split()
scores = list(map(float, line))
student_marks[name] = {
'scores': scores,
'total': sum(scores),
'n': len(scores)
}
那么您的查詢將如下所示:
def query(name):
if name in student_marks:
record = student_marks[name]
return record['total'] / record['n']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.