我已经通过IDE打开了一个新文件,并通过readlines将其转换为一个列表。为什么?因为我想把它们打印在彼此之下。当我使用read()
时,它只打印一个项目,而我需要打印整个列表。
实际档案:
['Some name__________1.5 6.5 6.5\n', 'Another name________6.3 1.2 1.5\n']
现在,我已经设法获取列表的最后一部分,看起来像这样:
1.5 3.5 4.5
2.5 3.5 4.5
5.5 3.5 4.5
我现在要做的是计算这些数字的平均值,但是:Python根本不会将它们识别为数字(整数,浮点数)。
当我使用type(TheVariableThatContainsMyList)
时,它并未显示其类型。因此,我不认为它们是整体,字符串或花车。
我认为我需要做的是将此列表中的项目转换为浮点数,因为它们应该是浮点数。但要这样做,我需要知道我做错了什么以及如何解决这个问题。
这是我的代码:
def zopenFile():
fileFolder = open('TEXTFILE', 'r')
readFile = fileFolder.readlines()
for line in readFile:
line = line.split("_")
grades = line[-1]
print grades
zopenFile()
我尝试过grades = map(float,line[-1])
但在这种情况下,控制台会说:could not convert string to float: .
奇怪的是,如果我使用type(grades)
,它就不会说它在控制台中有一个字符串的类型。我现在很困惑......这是一个字符串吗?它已经是浮动了吗?如果是这样,为什么我不能将它映射到浮点数?
有人能指出我正确的方向吗?
我知道我可以使用read()
,但我不想。有人可以告诉我如何使用readlines()
代替吗?
答案 0 :(得分:1)
您的map
正在对字符串的每个字符进行操作,因为当您遍历字符串时,您会获得单个字符。您想使用另一个split
将每个数字分成不同的字符串。
grades = map(float, line[-1].split())