Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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/9/ruby-on-rails-3/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
使用Python将字符串拆分为数字_Python - Fatal编程技术网

使用Python将字符串拆分为数字

使用Python将字符串拆分为数字,python,Python,例如,我想从string“1+2-3.0”中获取列表[1.0,2.0,-3.0],但我不知道如何做到这一点 你的想法是什么?使用正则表达式,你可以很容易地做到这一点。结果是字符串列表,最终应转换为float以匹配您的结果 实施 import re s = "1+2-3.0" map(float, re.findall("([+-]?[\d\.]+)", s)) 如果您使用的是Python3.X,请记住在映射返回映射对象时将其转换为列表。否则,请使用列表 正则表达式解释 import re s

例如,我想从string
“1+2-3.0”
中获取列表
[1.0,2.0,-3.0]
,但我不知道如何做到这一点


你的想法是什么?

使用正则表达式,你可以很容易地做到这一点。结果是字符串列表,最终应转换为float以匹配您的结果

实施

import re
s = "1+2-3.0"
map(float, re.findall("([+-]?[\d\.]+)", s))
如果您使用的是Python3.X,请记住在映射返回映射对象时将其转换为列表。否则,请使用列表

正则表达式解释

import re
s = "1+2-3.0"
map(float, re.findall("([+-]?[\d\.]+)", s))
查找以符号为前缀的所有数字(数字和句点)

输出

[1.0, 2.0, -3.0]

您首先需要更好地指定需求。为什么你想要
-3.0
而不是
3.0
?在
1+2
之间的
+
发生了什么事?@BurhanKhalid注释当然我认为他需要
1,2
,因为
+2
=
2
。因此,我认为@Abhijit的答案是完美的。重点是,这个问题表达得很糟糕。
map(float,re.split([+-]”,s))
没有按预期工作。@PriyankPatel:可能是您在使用Python 3.XNope<代码>2.7.3。o/p是
[1.0,2.0,3.0]
。3.X的决定是什么?
re.split
版本忽略符号。