【发布时间】:2017-05-28 15:40:25
【问题描述】:
假设我有数据
data = 'A|B|2|D|0.3|5|kg|1.69|m'
我想使用 split('|') 将其转换为列表,但我得到了所有值都转换为字符串的列表。我在 SE 上没有看到任何类似的问题。
我怎样才能得到类似的东西:
data_list = ['A','B',2,'D',0.3,5,'kg',1.69,'m']
数据的类型在哪里(int、str 或 float)。
我不想要一个非常冗长的函数,但 用最短和最简单的方法来实现它,lambda 是否可行(我正在尝试但到目前为止没有成功)?,其他的也可以.
任何想法。
后期编辑:
我尝试通过以下方式使用 lambda:
da_list02 = map(lambda x: float(x) if type(float(x)) is float else str(x), da_list)
但是,我收到了ValueError。
ValueError:无法将字符串转换为浮点数:A
else 的 lambda function 部分不应该覆盖它吗? lambda function 有什么问题?
【问题讨论】:
-
你尝试将
x转换成if type(float(x))中的float,所以出现异常。
标签: python regex string list lambda