在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'
演示文稿输入,它将删除不必要的尾随零和点。