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

2024-10-02 14:18:34 发布

您现在位置: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根本不将它们识别为数字(int、float)。

当我使用type(TheVariableThatContainsMyList)时,它不会显示它的类型。因此,我不认为它们是int、string或float。你知道吗

我想我需要做的是,将这个列表中的项目转换成float,因为它们应该是float。但要做到这一点,我需要知道我做错了什么,以及我怎样才能解决这个问题。你知道吗

这是我的代码:

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()来代替吗?你知道吗


Tags: 文件项目name类型列表readstringtype
1条回答
网友
1楼 · 发布于 2024-10-02 14:18:34

您的map是对字符串的每个字符进行操作的,因为当您对字符串进行迭代时,会得到单个字符。您希望使用另一个split将每个数字放入单独的字符串中。你知道吗

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

相关问题 更多 >