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

5
我需要定义一个名为 txtnum(L) 的函数,该函数将以逗号分隔的浮点数字符串(例如"1.5,2.5,3.5")作为参数,并将其转换为列表[1.5, 2.5, 3.5]
我尝试使用.split().join()map()等方法,但都无法返回不包含引号的列表。我对Python还是比较新手,在这个地方有点迷惑。
请问我该如何处理这个问题?
3个回答

8
您需要转换拆分变量的数据类型,因为仅对字符串进行拆分会给您提供一个字符串列表。
>>> 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]

2

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]

-1

试一下这个:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接