将字符串转换为浮点数列表

时间:2021-06-29 20:19:06

标签: python list

在python中,我目前有以下内容:

s = '(num1, num2)'

我想知道如何将其转换为带有浮点值的列表,格式如下:

s = [ num1, num2 ] 

有什么可能的方法可以做到这一点,最好无需导入任何东西。提前致谢!

3 个答案:

答案 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]