如何在Python代码中显示最大均值?

huangapple go评论87阅读模式
英文:

How do I display the largest mean in python code?

问题

在Python代码中,如何显示最大的平均值?在这段代码中,计算了一组数字的平均值。我想要显示最大的平均值。

  1. import csv
  2. from statistics import mean
  3. with open("numbers.csv") as f:
  4. reader = csv.reader(f)
  5. max_average = 0 # 初始化最大平均值
  6. max_name = "" # 初始化对应的名称
  7. for row in reader:
  8. name = row[0]
  9. these_grades = list()
  10. for grade in row[1:]:
  11. these_grades.append(int(grade))
  12. average = mean(these_grades)
  13. if average > max_average:
  14. max_average = average
  15. max_name = name
  16. print("最大平均值是 %f,对应的名称是 %s" % (max_average, max_name))

number.csv:

  1. arad,19,19,20,18
  2. sara,17,18,17,15
  3. mahdi,12,13,15,16
  4. saber,14,13,15,15
  5. adel,19,14,17,16
英文:

How do I display the largest mean in python code?In this code, the average of a number of numbers is calculated. I want the largest average to be displayed

  1. import csv
  2. from statistics import mean
  3. with open("numbers.csv") as f:
  4. reader = csv.reader(f)
  5. for row in reader:
  6. name = row[0]
  7. these_grades = list()
  8. for grade in row[1:]:
  9. these_grades.append(int(grade))
  10. print("avrage of %s is %f" % (name, mean(these_grades)))

number.csv:

  1. arad,19,19,20,18
  2. sara,17,18,17,15
  3. mahdi,12,13,15,16
  4. saber,14,13,15,15
  5. adel,19,14,17,16

答案1

得分: 0

以下是翻译好的代码部分:

  1. import csv
  2. from statistics import mean
  3. with open('number.csv') as f:
  4. means = []
  5. reader = csv.reader(f)
  6. for row in reader:
  7. name, grades = row[0], map(int, row[1:])
  8. mean_ = mean(grades)
  9. means.append(mean_)
  10. print('average of %s: %f' % (name, mean_))
  11. print('Max average: {}'.format(max(means)))

  1. average of arad: 19.000000
  2. average of sara: 16.750000
  3. average of mahdi: 14.000000
  4. average of saber: 14.250000
  5. average of adel: 16.500000
  6. Max average: 19
英文:

Use the following approach (accumulate average for each name):

  1. import csv
  2. from statistics import mean
  3. with open('number.csv') as f:
  4. means = []
  5. reader = csv.reader(f)
  6. for row in reader:
  7. name, grades = row[0], map(int, row[1:])
  8. mean_ = mean(grades)
  9. means.append(mean_)
  10. print('average of %s: %f' % (name, mean_))
  11. print('Max average: {}'.format(max(means)))

  1. average of arad: 19.000000
  2. average of sara: 16.750000
  3. average of mahdi: 14.000000
  4. average of saber: 14.250000
  5. average of adel: 16.500000
  6. Max average: 19

答案2

得分: 0

如果你不需要额外的导入(因为没有引号括起的元素,所以简单的分割就足够了)。

如果你对一行代码的方式感兴趣:

  1. maximum_mean = max(
  2. (
  3. sum(map(int, (grades := line.split(","))[1:])) / len(grades)
  4. for line in open('numbers.csv')
  5. )
  6. )
  7. print(maximum_mean) # 19.0
英文:

You could also do it without additional imports(you don't have quoted elements so a simple split does the job)

If you interested in one-liner:

  1. maximum_mean = max(
  2. (
  3. sum(map(int, (grades := line.split(",")[1:]))) / len(grades)
  4. for line in open('numbers.csv')
  5. )
  6. )
  7. print(maximum_mean) # 19.0

huangapple
  • 本文由 发表于 2023年1月9日 01:12:24
  • 转载请务必保留本文链接:https://go.coder-hub.com/75049813.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定