python - 如何从python中的字符串格式数字中获取原始数字?
问题描述
我有一个字符串编号列表,如下所示:
my_list = ["6.84", "6", "3.24"]
我希望找到一个简单的解决方案,将那些字符串格式的数字转换为数字格式:
my_list = [6.84, 6, 3.24]
我试过的:
l = [float(num) if '.' in num else int(num) for num in my_list]
我想知道python中是否有更直接的解决方案?
解决方案
您的解决方案绝对没问题;可以直接简化的唯一方法是分解(num)
函数调用:
l = [(float if '.' in num else int)(num) for num in my_list]
但是否更好,这是一个见仁见智的问题。
一个单独的问题是'.' in num
不测试浮点数的所有类型的字符串表示,例如1e3
浮点数1000.0
。如果要将每个数字字符串解析为 Python 中的类型,可以使用以下ast.literal_eval
函数:
import ast
l = [ast.literal_eval(num) for num in my_list]
推荐阅读
- bazel - 如何从 bazel 以前的运行中查找日志
- reactjs - 如何在 React/Typescript 中使用用户点击事件实现类似堆栈的动画
- mysql - Arduino - GET 请求和数据发布到 mySQL
- excel - 只有在另一个工作表中找不到匹配项时,VBA才会复制一系列单元格
- server - 我应该如何设计一个投票式的投票系统?
- angular - 视觉代码无法检测到安装的角度
- javascript - Java从Javascript无法识别加密字节?
- python - 在 pandas 中制作条形图
- html - HTML 视频未出现在页面上
- python - 关于爬楼梯记忆自上而下方法的问题