在python中,我目前有以下内容:
s = '(num1, num2)'
我想知道如何将其转换为带有浮点值的列表,格式如下:
s = [ num1, num2 ]
有什么可能的方法可以做到这一点,最好无需导入任何东西。提前致谢!
答案 0 :(得分:1)
使用ast.literal_eval
:
import ast
s = '(1e19, -23.430)'
>>> ast.literal_eval(s)
(1e+19, -23.43)
答案 1 :(得分:0)
这应该有效:
in_string = '(100, 200)'.replace('(', '').replace(')', '')
out = list(map(float, in_string.split(',')))
获取初始字符串输入并使用 .replace 将 ( 和 ) 替换为空。然后,制作一个由映射组成的输出列表,该映射将 input.split(',') 的每个元素(这是一个由逗号分隔的元素列表)转换为浮点数。
答案 2 :(得分:0)
你也可以试试这个:
import re
s_in = '(1e19, -23.430)'
s_out = [float(s) for s in re.findall(r"\d+[e]\d+|[-+]\d+\.\d+|\d+", s_in)]
print(s_out)
输出:
[1e+19, -23.43]