当尝试使用count函数和正则表达式[A-Za-z]计算字符串中的所有字母时,它返回一个零值。
例如:
string="Hi, everybody. Let's dance!"
string.count('[A-Za-z]') ## prints 0
有什么建议吗?
答案 0 :(得分:3)
使用正则表达式:
len(re.findall('[A-Za-z]', string))
答案 1 :(得分:0)
如brianpcks评论中所述,有些替代品不需要使用正则表达式:
len(c for c in string if c.isalpha())
或
from string import ascii_lowercase
len(c for c in string if c in string.ascii_lowercase)
虽然这些替代方案在CPython中可能会更慢,但是你的里程可能因其他Python实现而有所不同(特别是PyPy,他们的JIT可以很好地优化python循环)。
与往常一样,如果速度是一个问题,请在决定使用哪个方法之前对您的环境中的两种方法进行基准测试。
答案 2 :(得分:-1)
因为计数不起作用,请查看此链接count
在该声明中,您将告诉' [A-Za-z]'在字符串中 如果要计算字符串中的所有字母,请使用len()