计算字符串中的小写字符

时间:2012-06-08 17:12:01

标签: python

计算字符串中小写字符数的最pythonic和/或最有效的方法是什么?

这是我想到的第一件事:

def n_lower_chars(string):
    return sum([int(c.islower()) for c in string])

4 个答案:

答案 0 :(得分:12)

你的聪明伎俩!但是,我觉得过滤较低的字符会更具可读性,每个字符都加1。

def n_lower_chars(string):
    return sum(1 for c in string if c.islower())

此外,我们不需要为此创建新列表,因此删除[]将使sum()在迭代器上工作,这会消耗更少的内存。

答案 1 :(得分:7)

def n_lower_chars(string):
    return len(filter(str.islower, string))

答案 2 :(得分:5)

def n_lower_chars(string):
    return sum(map(str.islower, string))

答案 3 :(得分:2)

如果你想更精细地划分事物:

from collections import Counter

text = "ABC abc 123"
print Counter("lower" if c.islower() else 
              "upper" if c.isupper() else
              "neither" for c in text)