将逗号分隔的浮点数字符串转换为列表



我需要定义一个函数txtnum(L),该函数将一串逗号分隔的浮点数(如"1.5,2.5,3.5"(作为参数,并将其转换为列表[1.5, 2.5, 3.5]

我尝试使用.split().join()map()等,但无法返回不包含引号的列表。我对Python很陌生,在这里有点迷茫。

我将如何做到这一点?

您需要转换拆分变量的数据类型,因为单独拆分字符串会为您提供字符串列表。

>>> s = "1.5,2.5,3.5"
>>> [float(i) for i in s.split(',')]
[1.5, 2.5, 3.5]
>>> 

>>> map(float, s.split(','))
[1.5, 2.5, 3.5]

1.5,2.5,3.5 是 Python 中有效的tuple文字(没有括号,是的,但没关系(,所以你可以在上面使用 ast.literal_eval

In [1]: import ast
In [2]: s = '1.5,2.5,3.5'
In [3]: ast.literal_eval(s)
Out[3]: (1.5, 2.5, 3.5)

如果你真的需要一个列表,这也很容易:

In [4]: list(ast.literal_eval(s))
Out[4]: [1.5, 2.5, 3.5]

试试这个:

s = "1.5,2.5,3.5"
strArr = s.split(',')
import numpy as np
x = np.array(strArr, dtype='|S4')
arrFloat = x.astype(np.float)
print arrFloat

最新更新