python中计算字符串中字母总数的python方法

2024-04-24 21:36:02 发布

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

我刚开始学习python,我可以想出两种方法来计算字符串中的字母(忽略数字、标点和空格)

  1. 使用for循环:
for c in s:
    if c.isalpha():
        counter += 1
print(counter)
  1. 创建字母表列表并计算列表的长度:(它将创建一个不需要的列表)
import re
s = "Nice. To. Meet. You."
letters = re.findall("([a-z]|[A-Z])", s)
counter = len(letters)
print(counter)

有谁能告诉我有没有一种“Python式”的方法可以达到同样的效果? 就像单行代码或调用的函数返回一个int,这就是答案? 多谢各位


Tags: 方法字符串inre列表forif字母
2条回答

您可以使用正则表达式删除任何非字母的内容,然后计算字符串的长度:

import re
s = "Nice. To. Meet. You."
counter = len(re.sub(r'[^a-zA-Z]','',s))

你的第一种方法是完美的Python式的,而且可能是一种方式。您可以使用filter或列表理解稍微简化为:

s = "Nice. To. Meet. You."
len(list(filter(str.isalpha, s)))
# 13

或:

len([i for i in s if i.isalpha()])
# 13

您的第二种方法实际上并不可取,因为您实际上不需要为此使用正则表达式。注意,顺便说一下,您可以将该模式简化为([a-zA-Z])

相关问题 更多 >