Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将逗号分隔的字符串转换为浮点列表_Python_List - Fatal编程技术网

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(',') ]

在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
是一个包含一个字符串的列表,因此要访问该字符串,您需要
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文档)