在python中求平均值

2024-06-25 23:46:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在阅读一个.txt文件,每个人有四个分数,我需要找出如何从每一行的分数,并找到每个人的平均数。在

s={}
results= open("surf.txt")
for line in results:
  (s['Name'], s['scoreOne'], s['scoreTwo'], s['scoreThree'], s['scoreFour']) =line.split(";")

这似乎是解决这个问题所需的所有代码。在

在冲浪.txt包含:

^{pr2}$

Tags: 文件nameintxtforlineopenresults
3条回答

您可以使用[1:]对结果列表进行切片

for line in results:
    scores = line.split(';')[1:]
    scores = map(float, scores) # Conversion to float
    average = sum(scores)/len(scores)

这也更一般,因为你不需要依赖分数的多少,只需拒绝第一个元素:)

如果您的文件具有以下格式:

john; 1; 2; 3; 4
pete; 5; 4; 3; 2
joan; 9; 8; 7; 6

然后您可以简单地:

^{pr2}$

请注意,如果此人有多个姓名,则此示例将不起作用:它假定只有一列对应于该姓名,其余的列可以转换为浮动。在

解决方案:

separator = ";"
inputFile = "input.txt"

with open(inputFile) as f:
    for line in f:
        values = line.split(separator)
        name = values[0]
        scores = map(float, values[1:])
        avg = sum(scores) / len(scores)
        print name, avg

输入:

^{pr2}$

输出:

Maciej 20.0
John 11.75
Mike 5.0

相关问题 更多 >