检查字符串中的数字-无循环且无库

时间:2019-03-09 13:21:31

标签: python

我想要一个字符串,例如,我想输入“我有2条狗”,并且如果字符串中显示数字,我希望外壳程序返回True(一个函数可以执行)。 我发现在不使用任何循环且没有任何“ re”或“ string”库的情况下很难编码。

请帮忙吗?

示例:

input: "I own 23 dogs"
output: True

input: "I own one dog"
output: False

2 个答案:

答案 0 :(得分:1)

>>> 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解决方案一样):

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

答案 1 :(得分:1)

列表理解可以帮助您:

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"))

输出:

True
False