web-dev-qa-db-ja.com

pythonを使用して文字列の文字が大文字になっているかどうかを確認するにはどうすればよいですか?

「asdfHRbySFss」のような文字列があり、一度に1文字ずつ調べて、どの文字が大文字になっているかを確認したいです。 Pythonでこれを行うにはどうすればよいですか?

26
clayton33

string.isupper() を使用します

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

それを文字列に戻したい場合は、次のことができます:

print "".join(uppers)
53
Sam Dolan

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
8
David

Filter()でstring.isupper()を使用します

>>> letters = "asdfHRbySFss"
>>> def isCap(x) : return x.isupper()
>>> filter(isCap, myStr)
'HRSF'
6
willie
m = []
def count_capitals(x):
  for i in x:
      if i.isupper():
        m.append(x)
  n = len(m)
  return(n)

これはリストを使用して行うことができる別の方法です。キャップを元に戻したい場合は、len()を削除するだけです

2
Coolkid

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']
0
jcchuks