首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中的字符串和整数

Python中的字符串和整数
EN

Stack Overflow用户
提问于 2018-06-08 07:17:12
回答 3查看 347关注 0票数 1

这是我的数据文件(名为“studentdata.txt”)

代码语言:javascript
复制
joe 10 15 20 30 40
bill 23 16 19 22
sue 8 22 17 14 32 17 24 21 2 9 11 17
grace 12 28 21 45 26 10
john 14 32 25 16 89

我需要计算每个学生的平均成绩,并打印出学生的名字和他们的平均成绩。我可以毫不费力地提取名字并确定考试分数,但我不知道如何计算考试分数的总和。这就是我到目前为止所知道的:

代码语言:javascript
复制
file=open("studentdata.txt","r")

for aline in file:    
    data=aline.split()    

    print((data[0]),"Average grade:")
    print(len(data[1:]))


file.close()  
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-08 07:25:04

看起来您已经完成了大部分工作,并且您已经很好地掌握了如何将每一行划分为所需的两个组件,所以您已经非常接近了!

首先,由于数据是以字符串的形式读入的,您需要将部分数据转换为整数:

代码语言:javascript
复制
for line in file:
    tmp = line.split()
    name, scores = tmp[0], list(map(int, tmp[1:]))

这将为我们提供每个名称,以及一个整数分数列表。现在你要做的就是找出平均值:

代码语言:javascript
复制
average = sum(scores)/len(scores)

让我们通过将其分配给一个字典来将它们联系在一起:

代码语言:javascript
复制
dct[name] = average

然后我们得到:

代码语言:javascript
复制
{'joe': 23.0, 'bill': 20.0, 'sue': 16.166666666666668, 'grace': 23.666666666666668, 'john': 35.2}
票数 3
EN

Stack Overflow用户

发布于 2018-06-08 07:36:47

尝尝这个?

代码语言:javascript
复制
file = open("studentdata.txt", "r")
for aline in file:
    data = aline.split()

    # Convert list of string numerals to int
    grades = [int(grade) for grade in data[1:]]

    # Find average by dividing sum by length of numbers list
    average = sum(grades)/len(data[1:])

    print((data[0]), "Average grade:", str(average))

file.close()
票数 1
EN

Stack Overflow用户

发布于 2018-06-08 07:33:50

尝试下面的代码,只需将每一行用空格分隔,然后获取不带名称的数字,这样索引将是i.strip().split()[1:],然后使用map将其转换为整数,然后使用statistics.mean获取平均值:

代码语言:javascript
复制
from statistics import mean
d = {}
with open('studentdata.txt','r') as f:
   for i in f.readlines():
      d[i.split()[0]] = mean(list(map(int,i.strip().split()[1:])))
print(d)

输出:

代码语言:javascript
复制
{'joe': 23.0, 'bill': 20.0, 'sue': 16.166666666666668, 'grace': 23.666666666666668, 'john': 35.2}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50751356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档