python如何统计字符中有多少数字例如123abc中有3个数字

要求是
def count_digits():
(str) -> int
而且不能用print

第1个回答  2012-10-04
def count_digits(s):
return len([i for i in s if i.isdigit()])
def count_digits2(s):
return map(str.isdigit ,s).count(True)
s='a1b2c345'
print count_digits(s)
print count_digits2(s)
第2个回答  2012-10-04
from string import digits
def countdigit(s):
return len(filter(lambda x: x in digits, s))

or

import re
digitpatt = re.compile('\d')

def countdigits(s):
return len(digitpatt.findall(s))追问

要求是
def count_digits():
(str) -> int
例如
>>>count_digits(123abc456)
6
感激不尽

追答

Type "help", "copyright", "credits" or "license" for more information.
>>> from string import digits
>>> def countdigit(s):
... return len(filter(lambda x: x in digits, s))
...
>>> countdigit('123abc456')
6
>>> import re
>>> digitpatt = re.compile('\d')
>>> def countdigits(s):
... return len(digitpatt.findall(s))
...

>>> countdigit('123abc456')
6
>>>

本回答被提问者采纳
相似回答