为什么我不能将使用readlines()获取的列表转换为浮点数?

时间:2016-11-16 22:06:55

标签: python

我已经通过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()代替吗?

1 个答案:

答案 0 :(得分:1)

您的map正在对字符串的每个字符进行操作,因为当您遍历字符串时,您会获得单个字符。您想使用另一个split将每个数字分成不同的字符串。

grades = map(float, line[-1].split())