У меня есть строка, подобная "asdfHRbySFss", и я хочу пройти через нее по одному символу за раз и посмотреть, какие буквы заглавные. Как я могу это сделать в Python?
Как я могу проверить, является ли буква в строке заглавной с помощью python?
Ответ 1
Используйте string.isupper()
letters = "asdfHRbySFss"
uppers = [l for l in letters if l.isupper()]
если вы хотите вернуть это обратно в строку, которую вы можете сделать:
print "".join(uppers)
Ответ 2
Другой, более компактный способ сделать решение 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
Ответ 3
Используйте string.isupper() с фильтром()
>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'
Ответ 4
m = []
def count_capitals(x):
for i in x:
if i.isupper():
m.append(x)
n = len(m)
return(n)
Это еще один способ, который вы можете сделать со списками, если вы хотите вернуть колпачки, просто удалите len()
Ответ 5
Другой способ сделать это с помощью набора символов 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']