Python - 如何计算列表中字符串中的大写字母数

时间:2014-11-04 17:00:52

标签: python string list count uppercase

例如,如果我有这个清单:

s = ["Johnny and Annie", "Great job guys", "She and I"]

如何让Python计算此列表中每个元素的大写字母数?对于此示例,Python应返回2,1,2。

到目前为止,这是我的代码:

def poisci_pare(besedilo):
x = []
seznam = []
t = re.split("[.]", besedilo)
for e in t:
    x = x + e.split()
for s in x:
    if s == s.capitalize() and not s.startswith('"'):
        seznam.append(s)

这个函数创建一个列表,用于按句点分隔句子,然后过滤掉其中的所有大写单词,但我不知道如何计算大写字母..

2 个答案:

答案 0 :(得分:3)

试试这个:

[sum([c.isupper() for c in a]) for a in s]

您的示例将输出:

[2, 1, 2]

答案 1 :(得分:0)

一种直截了当的方式可能是:

  • 遍历列表中的每个字符串
  • 初始化当前字符串的大写字母计数器
  • 循环遍历列表中的每个字符,并检查它是否isupper
  • 使用isupper找到的号码
  • 更新当前字符串的计数器