2010-10-23 140 views
32

我对编程非常陌生,所以我希望这个问题很简单。将字符串序列转换为python中的浮点列表

我需要知道如何用空格在一行分开一串数字输入转换:

5.2 5.6 5.3 

和将它转换为一个浮动列表

lsit = [5.2,5.6,5.3] 

如何才能做到这一点?

+4

你的变量是真的叫做'lsit'吗?还是说这个问题是一个错字?如果它是mant是'list',那么我还应该补充说你不应该使用'list'作为变量名,因为它隐藏了一个名字相同的内建函数。 – 2010-10-23 14:54:01

回答

60

尝试列表理解:

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

注意的是Python 3.x中的第二个版本返回地图对象:

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

在Python 2.x中也可以用地图完成而不是一个列表。如果您需要列表,您可以通过致电list将其转换为列表,或者仅使用列表理解方法。

+2

只是想补充一点,Decimal可能是处理浮点的更好选择。 http://docs.python.org/library/decimal.html – dcolish 2010-10-23 16:34:58

+0

当我尝试使用此代码时,出现错误“无法将字符串转换为浮点数” – 2014-02-24 15:34:24