在Python中将字符串序列转换为浮点数列表

42

我对编程很陌生,所以希望这个问题足够简单。

我需要知道如何将一行中由空格分隔的数字字符串转换为输入:

5.2 5.6 5.3

并将其转换为浮点数列表

lsit = [5.2,5.6,5.3]

如何完成这个操作?


5
您的变量真的叫做 lsit 吗?还是这个问题中写错了?如果它应该是 list,那么我还要补充一点,就是您不应该将 list 作为变量名,因为它与一个同名的内置函数重名了。 - Mark Byers
1个回答

75

试试列表推导式:

s = '5.2 5.6 5.3'
floats = [float(x) for x in s.split()]

在Python 2.x中,也可以使用map函数实现:

floats = map(float, s.split())

请注意,在 Python 3.x 中,第二种方法返回的是一个映射对象,而不是列表。如果您需要一个列表,则可以通过调用 list 将其转换为列表,或者使用列表推导式方法。


2
只是想补充一下,Decimal 可能更适合处理浮点数。http://docs.python.org/library/decimal.html - dcolish
当我尝试使用这段代码时,出现了“无法将字符串转换为浮点数”的错误。 - Valentin H

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