在Python中,len()函数确实提供构成字符串中单词的确切#字母数量。
但是当我有一个包含多个单词的字符串时,它不会显示正确的#字母数量,因为它正在计算单词之间的空格。
对于具有多个单词的字符串,len()函数正确计算字母数的正确命令是什么?
答案 0 :(得分:0)
你可以使用len([c for c in address if c.isalpha()])
这里我假设你的字符串是命名地址。以下是来自python 3.4 docs的isalpha
的定义:
如果字符串中的所有字符都是字母,那么返回true 至少是一个字符,否则为假。字母字符是 Unicode字符数据库中定义的那些字符为 “信件”,即具有一般类别属性的那些 “Lm”,“Lt”,“Lu”,“Ll”或“Lo”。请注意,这与 Unicode标准中定义的“字母”属性
我们对地址中的每个单字符串执行此测试。由于python 3字符串是Unicode格式,因此该测试还会捕获其他字母表中的字母,如希腊语,阿拉伯语或希伯来语。我不知道这是不是你想要的,但如果你只有英文字母的字母,那就可以了。
答案 1 :(得分:0)
您可以使用正则表达式:
import re
s = "14th Street 456 */\&^%$-+#@!()[]{};.,:"
# Remove anything other than letters
n = re.sub(r'[^a-zA-Z]', "", s)
print(n)
print("length :" , len(n))
输出:
thStreet
length : 8