2014-11-04 1 views
0

Например, если у меня есть этот список:Python - как подсчитать количество прописных букв в строке, которая находится в списке

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) 

Эта функция делает список, где она отделяет предложения точками, а затем она отфильтровывает все заглавные буквы слова в нем, но я понятия не имею, как сделать это сосчитать прописные буквы ..

+0

https://docs.python.org/2/library/stdtypes.html#str.isupper – dm03514

+1

Что вы пробовали? (Сначала вы должны приложить некоторые усилия, так как это не служба написания кода.) –

+0

Я уже опубликовал свой код, и мне удалось создать 3 списка; 1 отделяет все предложения точками, каждый разбивает все слова в этих предложениях, а последний список отфильтровывает все заглавные буквы, но теперь я застрял, и я не могу подсчитать, сколько их в предложении .. Я пробовал .isupper, но это не совсем полезно, потому что мне нужен точный счет, а не True/False. – peroxy

ответ

2

Попробуйте это :

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

для примера будет:

[2, 1, 2] 
+0

Спасибо, это работает. – peroxy

0

простой способ может быть:

  • цикл по каждой строке в списке
  • инициализировать счетчик букв верхнего регистра для текущей строки
  • петли через каждый символ в списке и проверить, если он isupper
  • обновления счетчика текущей строки с числом isupper найдено

 Смежные вопросы

  • Нет связанных вопросов^_^