这是一个简单的代码:
s = ['-1', '2', '+']
print([x.isnumeric() for x in s])
print([x.isdigit() for x in s])
输出
[False, True, False]
[False, True, False]
我希望:
[True, True, False]
答案 0 :(得分:4)
它不是一个班轮,但这有效。
def isnum(x):
try:
float(x)
return True
except ValueError:
return False
s = ['-1', '2', '+']
print([isnum(x) for x in s])
答案 1 :(得分:1)
您还可以使用正则表达式模式来匹配负数,正数和十进制数:
>>> import re
>>> s = ['-1', '2', '+']
>>> [re.match('^(-|\+)?\d+(.\d+)?', n) is not None for n in s]
[True, True, False]
>>>
答案 2 :(得分:0)
[x.isnumeric() or (x[0] == '-' and x[1:].isnumeric()) for x in s]
答案 3 :(得分:0)
使用for循环和替换,您可以轻松检查列表中的值是否为数字。
示例:
>>> list = ['-1','2','+']
>>> result=[]
>>> for i in list:
... if '-' in i:
... result.append(i.replace('-','').isdigit())
... else:
... result.append(i.isdigit())
...
>>> print result
[True, True, False]
输出:
{{1}}
对于数字是浮点数或小数的情况,您可以轻松添加更多if语句。