Ho una stringa come "asdfHRbySFss" e voglio passare attraverso di esso un carattere alla volta e vedere quali lettere sono in maiuscolo. Come posso farlo in Python?come posso verificare se una lettera in una stringa è in maiuscolo usando python?
17
A
risposta
43
Usa string.isupper()
letters = "asdfHRbySFss"
uppers = [l for l in letters if l.isupper()]
se si desidera portare che in una stringa si può fare:
print "".join(uppers)
4
Usa string.isupper() con filtro()
>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'
6
Un altro, più compatto, modo di fare la soluzione di sdolan in 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
1
m = []
def count_capitals(x):
for i in x:
if i.isupper():
m.append(x)
n = len(m)
return(n)
Questo è un altro modo si può fare con le liste, se si desidera che i tappi di nuovo, è sufficiente rimuovere la len()
0
Un altro modo per farlo utilizzando set di caratteri ASCII - simile a @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']
perfetto, è stato grazie! – clayton33