在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()]
,但都返回了错误。
答案 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(',')
。
其次,看到x
由x= ['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(',')]
。