如何在Python中检查列表“are”数字中的元素?

2024-03-28 21:10:39 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是简单的代码:

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]

Tags: 代码infalsetrueforprintisdigitisnumeric
3条回答

这不是一个班轮,但这是工作。你知道吗

def isnum(x):
    try:
        float(x)
        return True
    except ValueError:
        return False

s = ['-1', '2', '+']
print([isnum(x) for x in s])

还可以使用正则表达式模式匹配负数、正数和十进制数:

>>> import re
>>> s = ['-1', '2', '+']
>>> [re.match('^(-|\+)?\d+(.\d+)?', n) is not None for n in s]
[True, True, False]
>>> 
[x.isnumeric() or (x[0] == '-' and x[1:].isnumeric()) for x in s]

相关问题 更多 >