将字符串列表转换为数字列表的最简单方法是什么,以便那些看起来像整数的字符串转换为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。是否有一种简单明了的方法将字符串转换为任意类型的数字?
答案 0 :(得分:2)
使用 ast模块。
<强>实施例强>
import ast
l = ['1' , '2.2' , '3']
print([ast.literal_eval(i) for i in l])
<强>输出:强>
[1, 2.2, 3]