【发布时间】:2013-01-31 19:33:48
【问题描述】:
我有一个字符串列表,格式如下
a = ['str','5','','4.1']
我想将列表中的所有数字转换为浮点数,但其余保持不变,像这样
a = ['str',5,'',4.1]
我试过了
map(float,a)
但显然它给了我一个错误,因为某些字符串无法转换为浮点数。我也试过了
a[:] = [float(x) for x in a if x.isdigit()]
但它只给了我
[5]
所以浮点数和所有其他字符串都丢失了。我应该怎么做才能同时保留字符串和数字?
【问题讨论】:
-
对不起,我不是很清楚,列表可能很长,我不知道元素的确切顺序,这意味着我不知道哪个是手头的数字。
-
您尝试过
'4.1'.isdigit(),还是阅读the docs? “如果字符串中的所有字符都是数字,则返回true……”由于'.'不是数字,因此返回false。 -
@abarnert,你是对的。我对 4.1 的看法有误,现在已修复。