在python中,如何从字符串格式的数字中获取原点数字?

在python中,如何从字符串格式的数字中获取原点数字?,python,Python,我有一个字符串编号列表,如下所示: my_list = ["6.84", "6", "3.24"] 我希望找到一个简单的解决方案,将字符串格式的数字转换为数字格式: my_list = [6.84, 6, 3.24] 我所尝试的: l=[float(num)if.'”在num else int(num)中表示我的列表中的num] 我想知道python中是否有更直接的解决方案?您的解决方案绝对不错;可以直接简化的唯一方法是将函数调用分解为(num): l=[(如果“.”在num else in

我有一个字符串编号列表,如下所示:

my_list = ["6.84", "6", "3.24"]
我希望找到一个简单的解决方案,将字符串格式的数字转换为数字格式:

my_list = [6.84, 6, 3.24]
我所尝试的:

l=[float(num)if.'”在num else int(num)中表示我的列表中的num]


我想知道python中是否有更直接的解决方案?

您的解决方案绝对不错;可以直接简化的唯一方法是将函数调用分解为
(num)

l=[(如果“.”在num else int中浮动)(num)代表我的_列表中的num]
但这是否更好还是个意见问题

另一个问题是num中的
。”不能测试浮点数的所有类型的字符串表示形式,例如
1e3
是浮点数
1000.0
。如果要将每个数字字符串解析为Python中的类型,可以使用以下函数:

导入ast
l=[my_列表中num的ast.literal_eval(num)]

列表(映射(浮动,我的列表))
。我意识到这并不等同,但混合类型似乎不可取。请。@ggorlen这是不等价的,因为它不会将整数映射到整数。如果所有的浮点数中都有
,那么就可以了。如果您有任何类似
1e3
的浮点值,那么它将不起作用。@ggorlen您的解决方案将6转换为6.0,这不是我所期望的。我需要它用于打印如果你的问题是打印,只需使用正确的打印格式。查看一下
'g'
演示文稿输入,它将删除不必要的尾随零和点。