2011-01-15 19 views

cevap

43

Kullanım string.isupper()

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

geri bir dize içine getirmek istiyorsanız yapabilirsiniz: filtreli

print "".join(uppers) 
+0

Mükemmel, teşekkür ederim! – clayton33

4

Kullanım string.isupper()()

>>> letters = "asdfHRbySFss" 
>>> def isCap(x) : return x.isupper() 
>>> filter(isCap, myStr) 
'HRSF' 
6

Python 2.7+

'da sdolan'ın çözümünün bir başka daha kompakt yolu
>>> 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) 

Bugeri kapaklar isterseniz sadece len()

0

ASCII karakter kümesi kullanılarak bunu yapmak için başka bir yolu da kaldırmak sen listeleri ile yapabileceğiniz başka bir yoludur - benzer @sdolan için

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'] 
İlgili konular