簡體   English   中英

如何浮動從Python 3.5中的文件讀取的列表元素?

[英]How do I float an element of a list that is read from a file in Python 3.5?

我正在嘗試從打開並讀取為列表的文件中查找平均GPA。 該文件包含學生姓名,年齡和GPA(例如2.8),以逗號分隔,每個學生都有自己的一行。 我將逗號分開,以便token[3]成為GPA。 當我輸入代碼時,我收到Float object is not iterable錯誤。 如何浮動和/或定義字符串( token[3] ),以便執行諸如加法和除法之類的數學功能?

list=[]
f=open(file, 'r')
Sum = 0
for line in range(f):
    line=line.strip()
    token=line.split(',')
    list.append(token)
    print (sum(float(token[3])))

像這樣的東西呢(您可以希望擴展):

import statistics

gpa_grades = []
with open('grades.txt') as file:
    for line in file:
        gpa_grades.append(float(line.split(',')[3].strip()))

print("The average gpa is %f" % (sum(gpa_grades) / float(len(gpa_grades))))
print("The median gpa is %f" % statistics.median(gpa_grades))

示例grades.txt:

Bob,Smith,18,2.8
Simon,King,19,3.6
Jane,Doe,16,4.0

輸出:

The average gpa is 3.466667
The median gpa is 3.600000

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM