2011-01-15 6 views
17

मेरे पास "asdfHRbySFss" जैसी स्ट्रिंग है और मैं एक समय में एक चरित्र को देखना चाहता हूं और देख सकता हूं कि कौन से अक्षरों को पूंजीकृत किया गया है। मैं पायथन में यह कैसे कर सकता हूं?मैं कैसे जांच सकता हूं कि स्ट्रिंग में एक अक्षर पाइथन का उपयोग करके कैपिटल किया गया है?

उत्तर

43

उपयोग string.isupper()

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

अगर आपको लगता है कि एक स्ट्रिंग में वापस लाना चाहते हैं आप कर सकते हैं: फिल्टर के साथ

print "".join(uppers) 
+0

सही, यह आपको धन्यवाद था! – clayton33

4

उपयोग string.isupper()()

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

पाइथन 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) 

यह एक और तरीका है कि आप सूची के साथ क्या कर सकते हैं, यदि आप टोपी वापस चाहते हैं, बस लेन()

0

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'] 
संबंधित मुद्दे

 संबंधित मुद्दे