Python 将逗号分隔的字符串转换为浮点列表
在Python中,我目前有一个元素列表,其中的元素如下所示:Python 将逗号分隔的字符串转换为浮点列表,python,list,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()],但都返回了错误。用逗号分割字符串,并从每个项构造一个float: [ float(item) for item in '1.1,2.3,5.1'.split(',') ]
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()]
,但都返回了错误。用逗号分割字符串,并从每个项构造一个float
:
[ float(item) for item in '1.1,2.3,5.1'.split(',') ]
x
是一个包含一个字符串的列表,因此要访问该字符串,您需要x[0]
。该字符串以逗号分隔,因此需要指定分隔符:split(“,”)
。(否则,split()
因此,你最终会:
[float(i) for i in x[0].split(',')]
确保对字符串而不是单个元素列表应用split()
函数。使用x[0]
确保。另外,将分隔符,
传递给split()
函数
x = [float(i) for i in x[0].split(',')]
x=[x.split()中i的float(i)]
几乎是正确的,除了两件事。首先,您没有将任何内容传递给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)
list(map(float, x[0].split(',')))
这将输出一个浮动列表:[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 = ['1.1,1.2,1.6,1.7']
floats = [float(i) for i in x[0].split(',')]
print(floats)
list(map(float, x[0].split(',')))
接受一个函数(float
,在本例中)和一个iterable(在本例中,此列表:x[0]。拆分(“,”)
)<代码>浮动
函数为列表中的每个项调用x[0]。拆分(',')
这相当于:
请尝试
x[0]。拆分(',')
?x
是一个列表,因此您需要通过x[0]
访问它。您还应该为split
调用提供分隔符,例如:x[0]。split(“,”)
OP有不同的输入,它们是列表,而不是数组:@UnholySheep,谢谢,我已经更正了术语。仅供参考,“不在任何事情上拆分”是不正确的,请参阅-没有分隔符表示它在空白处拆分。@whrrgarbl谢谢,在Python3+中,map
不返回列表,它返回一个map对象,您必须将其转换为list@IronFist在这个问题中,Python 3没有被标记!Python2和Python2都不是,所以您必须概括您的答案,并且您在答案中引用了Python3(链接到Python3文档)