将字符串列表转换为数字列表而不指定int或float

时间:2018-05-27 07:49:11

标签: python

将字符串列表转换为数字列表的最简单方法是什么,以便那些看起来像整数的字符串转换为int而其他字符串转换为浮点数?

示例:

list = ['1' , '2.2' , '3']

转换的一种方法是定义它们的整数或浮点数:

list = [float(item) for item in list]

但是在这个例子中,明显的int也会被转换为float。

一种方法是检查变量类型并逐个转换。 有更简单的方法吗?

编辑:

类似的问题How can I convert a string to either int or float with priority of int有点难以理解问题是什么,并且接受的答案不包括我的案例。

另一个类似的问题How do I parse a string to float or int in Python是如何转换为int或float的基本问题,我的问题比这更进一步。

我再问一下:换句话说:如何将字符串(或字符串列表)转换为数字(或数字列表),无论何种类型,都保留其类型,无论是int,float(还是复杂的) )。通常转换是从字符串到某种类型的数字,通常是int或float。是否有一种简单明了的方法将字符串转换为任意类型的数字?

1 个答案:

答案 0 :(得分:2)

使用 ast模块

<强>实施例

import ast
l = ['1' , '2.2' , '3']
print([ast.literal_eval(i) for i in l])

<强>输出:

[1, 2.2, 3]