我的脚本正在从另一个文件中读取数据。 我要求数据为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]
答案 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)
它为您提供浮点格式的矩阵。当然,这假设每行中的值都相同