在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()]
,但两者都返回错误。
x
是一个只有一个字符串的列表,所以要访问该字符串,需要使用 x[0]
。该字符串以逗号分隔,因此需要指定分隔符:split(',')
。(否则,split()
会尝试按空格拆分字符串,如文档中所述。)
因此,最终结果如下:
[float(i) for i in x[0].split(',')]
map
不会返回一个列表,而是返回一个映射对象,你需要将其转换为列表。 - Iron Fist按逗号分隔字符串,并从每个项目构建一个 float
:
[ float(item) for item in '1.1,2.3,5.1'.split(',') ]
split()
函数,而不是单个元素列表。使用x[0]
确保这一点。此外,将分隔符,
传递给split()
函数。x = [float(i) for i in x[0].split(',')]
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(',')]
。
x[0].split(',')
? - martianwarsx
is a list, so you would need to access it viax[0]
. Also you should provide the delimiter to thesplit
call, e.g.:x[0].split(',')
- UnholySheep