将字符串转换为多个浮点值

2024-04-23 07:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我想把一个“list”字符串转换成一个包含两个float项的列表。不幸的是,列表作为一个长字符串导入。 原件:

a = '[123.34 , -12333]'

这是一个很大的长字符串,其中转换为float with map(float,a)返回:ValueError: could not convert string to float: [

新增:

a = [123.34, -12333]

其中123.34和-12333分别是单独的浮点数

我试过eval(a)。这有点效果,但会使所有的负数变成正数。你知道吗

任何帮助都将不胜感激。谢谢。你知道吗


Tags: to字符串mapconvert列表stringwitheval
3条回答

您需要先将字符串转换为列表

a = '[123.34 , -12333]'
res = map(float, a[1:-1].split(','))

使用列表理解

a = '[123.34 , -12333]'
string_list = a[1:-1].split(',')
res = [float(entry) for entry in string_list]

除了现有的答案之外,因为您有一个字符串形式的python列表,所以也可以使用^{}

import ast
f1, f2 = ast.literal_eval(a)

输出

>>> f1, f2 = ast.literal_eval(a)
>>> f1
123.34
>>> f2
-12333

literal_eval用于安全地计算包含Python文字的表达式Unicode拉丁语-1编码字符串。你知道吗

相关问题 更多 >