如何将split()与float()

时间:2018-05-25 07:38:51

标签: python split

我的脚本正在从另一个文件中读取数据。 我要求数据为float,而不是字符串,我正在寻找一种优雅/ pythonic方式将 float()与最后一行组合,而不是迭代整个列表来更改数据或更改数据当我需要它时:

    data = []
    with open(os.path.join(path, file), "r") as f:            
        searchlines = f.readlines()
        for i, line in enumerate(searchlines):


            data.append(line.replace('[', ' ').replace(']', ' ').split())

到目前为止,这会将文件中的数据保存在列表中的列表中 string

如何将最后一行与float()结合使用?

以下是阅读前的数据示例:

    [[ 563.15   1673.97 3078.41]
     [ 563.15   1066.4  26617.7]
     [ 563.212  778.931 59356.1]

2 个答案:

答案 0 :(得分:2)

使用map

<强>实施例

data.append(map(float, line.strip('[]').split()))

如果 python3

data.append(list(map(float, line.strip('[]').split())))

答案 1 :(得分:0)

你安装了numpy吗?

因为在这种情况下你可以这样做:

import numpy as np

with open(os.path.join(path, file), "r") as f:            
    data = np.array([line.strip('[]').split() for line in f],dtype=float)

它为您提供浮点格式的矩阵。当然,这假设每行中的值都相同