当前位置: 首页 > 面试题库 >

需要将字符串读入float数组

谢翰学
2023-03-14
问题内容

我有一个如下的文本文件。我想读取给定值作为浮动列表。之后,我将进行一些计算。我使用了拆分功能和转换来浮动。但是我不能转换第一个和最后一个,因为这两个都有方括号。([])。它给出了如下错误。

文件格式

[-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927,... 1000 records]
[2.758, -0.951, -1.7952, 0.4255, 2.5403, 1.0233,... 1000 records]
[0.682, -2.205, 2.1981, 2.1329, 0.1574, -0.4695,... 1000 records]

错误

 Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
 ValueError: could not convert string to float: [0.682

我使用的代码

F = open('XYZ.txt', 'r')
>>> for line in F:
...     P = line.split(',')
...     P

任何人都可以给我一个想法,如何将这些值读入如下所示的float数组中。

X = [-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927,... 1000 records]
Y = [2.758, -0.951, -1.7952, 0.4255, 2.5403, 1.0233,... 1000 records]
Z = [0.682, -2.205, 2.1981, 2.1329, 0.1574, -0.4695,... 1000 records]

然后我可以调用X [1],X [999]之类的值


问题答案:

用于ast.literal_eval()将每一行解析为浮点数列表:

import ast

with open('XYZ.txt', 'r') as infh:
    for line in infh:
        row = ast.literal_eval(line)
        print row

ast.literal_eval()每行解释为包含文字的Python值,支持列表,元组,字典,字符串和数字文字。

演示:

>>> import ast
>>> ast.literal_eval('[-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927]\n')
[-1.504, 1.521, 1.531, 1.1579, -2.2976, 2.5927]


 类似资料:
  • 所以,我知道这可能是一个非常愚蠢的问题,我是一个初学者,试图学习Java基础知识,我有一个字符串数组的问题,我不太明白。当我尝试将单词输入到字符串数组中,并且单词的数量由用户设置(例如5)时,我总是可以少输入一个单词(例如4而不是5)。我的代码在下面。

  • 问题内容: 我想编写一个Go程序,以使用将从数据库表中的行转储到csv文件中。 Go提供了出色的sql和csv api,但是希望根据其类型在“填充”字段中使用字符串数组和方法。因为我之前不知道表,所以我不知道有多少列以及它们的类型。 这是我在Go中的第一个程序,所以我有点挣扎。 如何最好地将实例中的列读入-,这是“正确”的方式吗? 谢谢! 更新 我还在为参数苦苦挣扎。这是我的代码,目前我使用的不是

  • 问题内容: 我认为能够将文本文件读入和写出字符串数组的能力是相当普遍的要求。从一种语言开始消除最初访问数据库的需求时,它也非常有用。Golang中是否存在? 例如 和 我宁愿使用现有的而不是重复的。 问题答案: 从Go1.1版本开始,有一个bufio.Scanner API可以轻松读取文件中的行。考虑上面的以下示例,该示例使用Scanner重写:

  • 问题内容: 目前,我正在研究可用于读取url指定的网站内容的类。我刚开始我的冒险经历和,所以我需要咨询我的设计。 用法: 我的代码: 我的问题是:这是实现我想要的一个好方法吗?有更好的解决方案吗? 我特别不喜欢,但我无法用其他方式表达它。每次迭代都创建一个新的String很好吗?我想没有 还有其他弱点吗? 提前致谢! 问题答案: 考虑改为使用。此外,你可能想利用从Apache的百科全书IO使串阅读

  • 问题内容: 我正在从文件中读取行,然后使用它们。每行仅由浮点数组成。 我整理了几乎所有内容,将这些行转换为数组。 我基本上是这样做的(pseudopython代码) 这行得通,但是似乎有点违反直觉和反pythonic,我想知道是否有更好的方法来处理来自文件的输入,以使最后有一个充满浮点数的数组。 问题答案: 快速回答: 如果您经常处理此类数据,csv模块将有所帮助。 如果您感到疯狂,甚至可以使用完

  • 问题内容: 我已经声明了公共静态数组的名称和ID: 但是说: 我不知道怎么了 是我声明变量的方式还是写的方法? 问题答案: 您在静态String数组和传递给该方法的本地String变量之间发生冲突。 最好的解决方案是使用不同的名称。这将使代码更容易理解。 如果仍然坚持使用相同的名称,则可以通过使用类名称访问静态数组来解决名称冲突: 这同样适用于您的int数组和int变量。