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

时间:2016-12-29 18:34:50

标签: python list

在Python中,我目前有一个元素的元素列表,如下所示:

x= ['1.1,1.2,1.6,1.7']

其中每个值仅以逗号分隔。我想把这个浮点数列表,例如

x=[1.1, 1.2, 1.6, 1.7]

我尝试了x=[float(i) for i in x]x=[float(i) for i in x.split()],但都返回了错误。

5 个答案:

答案 0 :(得分:6)

x是一个包含一个字符串的列表,因此要访问该字符串,您需要x[0]。该字符串以逗号分隔,因此您需要指定分隔符:split(',')。 (否则,split()会尝试在空格as described in the docs上拆分字符串。)

所以你最终得到:

[float(i) for i in x[0].split(',')]

答案 1 :(得分:1)

您可以像这样使用map()

list(map(float, x[0].split(',')))

map()接受一个函数(在我们的例子中为float)和一个iterable(在我们的例子中是这个列表:x[0].split(','))。我们列表float

中的每个项都会调用x[0].split(',')函数

相当于此list comprehension

[float(item) for item in x[0].split(',')]

答案 2 :(得分:0)

用逗号分割字符串,并从每个项目构建float

[ float(item) for item in '1.1,2.3,5.1'.split(',') ]

答案 3 :(得分:0)

确保将split()函数应用于字符串而不是单个元素列表。使用x[0]确保这一点。另外,将分隔符,传递给split()函数。

x = [float(i) for i in x[0].split(',')]

答案 4 :(得分:0)

x=[float(i) for i in x.split()]几乎是正确的,除了两件事。首先,你没有向split()函数传递任何东西,所以它不会在你的字符串中拆分任何东西(它只会在你的字符串没有的空格上分割) 。您想要用逗号分隔,因此您必须将逗号传递给它,例如x.split(',')

其次,看到xx= ['1.1,1.2,1.6,1.7']定义,这是一个包含单个字符串的列表,您必须使用x[0]引用数组中的字符串。最终代码如下所示:

x = ['1.1,1.2,1.6,1.7']
floats = [float(i) for i in x[0].split(',')]
print(floats)

这会输出一个浮点列表:[1.1, 1.2, 1.6, 1.7]

如果x只是一个字符串,例如x = '1.1,1.2,1.6,1.7',那么您只需使用floats = [float(i) for i in x.split(',')]