Как я могу проверить, если буква в строке с большой буквы, используя Python? - PullRequest
24 голосов
/ 15 января 2011

У меня есть строка типа «asdfHRbySFss», и я хочу просмотреть ее по одному символу за раз и посмотреть, какие буквы заглавные. Как я могу сделать это в Python?

Ответы [ 5 ]

51 голосов
/ 15 января 2011

Используйте string.isupper ()

letters = "asdfHRbySFss"
uppers = [l for l in letters if l.isupper()]

, если вы хотите вернуть это обратно в строку, вы можете сделать:

print "".join(uppers)
7 голосов
/ 30 мая 2013

Еще один, более компактный способ решения sdolan в Python 2.7 +

>>> test = "asdfGhjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
upper
>>> test = "asdfghjkl"
>>> print "upper" if any(map(str.isupper, test)) else "lower"
lower
6 голосов
/ 20 декабря 2011

Используйте string.isupper () с фильтром ()

>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'
2 голосов
/ 01 сентября 2015
m = []
def count_capitals(x):
  for i in x:
      if i.isupper():
        m.append(x)
  n = len(m)
  return(n)

Это еще один способ сделать со списками, если вы хотите вернуть заглавные буквы, просто удалите len ()

0 голосов
/ 19 июля 2016

Другой способ сделать это с помощью набора символов ascii - аналогично @ sdolan

letters = "asdfHRbySFss"
uppers = [l for l in letters if ord(l) >= 65 and ord(l) <= 90] #['H', 'R', 'S', 'F']
lowers= [l for l in letters if ord(l) >= 97 and ord(l) <= 122] #['a', 's', 'd', 'f', 'b', 'y', 's', 's']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...