簡體   English   中英

為什么我不能將用readlines()獲取的列表轉換為浮點型?

[英]Why can't I convert the list that I fetched with readlines(), to floats?

我已經通過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()嗎?

您的map正在處理字符串的每個字符 ,因為迭代字符串時會得到單個字符。 您想使用另一個split將每個數字分成單獨的字符串。

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

暫無
暫無

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

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