首页 > 解决方案 > 如何从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中是否有更直接的解决方案?

标签: 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]

推荐阅读