关于python:检查字符串中的数字 – 没有循环,没有库

Checking for a digit in a string - without loops and without libraries

本问题已经有最佳答案,请猛点这里访问。

我想要一个字符串,例如我想输入‘我有两个狗’,如果字符串中显示了一个数字,我想让shell返回True(一个函数会做)。我发现不使用任何循环和任何"re"或"string"库就很难编写代码。

有什么帮助吗?

例子:

1
2
3
4
5
input:"I own 23 dogs"
output: True

input:"I own one dog"
output: False


列表理解有助于您:

1
2
3
4
5
def is_digit(string):
    return any(c.isdigit() for c in string)

print(is_digit("I own 23 dogs"))
print(is_digit("I own one dog"))

输出:

1
2
True
False


1
2
3
4
5
6
7
>>> a ="I own 23 dogs"
>>> print(bool([i for i in a if i.isdigit()]))
True

>>> b ="I own some dogs"
>>> print(bool([i for i in b if i.isdigit()]))
False

然而,更好的解决方案是使用any并使用生成器而不是列表以获得更好的性能(就像@alderven解决方案一样):

1
2
3
>>> a ="I own 23 dogs"
>>> any(i.isdigit() for i in a)
True