Pythonで文字列が大文字、小文字、または大文字と小文字が混在しているかどうかを確認します


92

大文字、小文字、混合大文字のいずれであるかに応じて、Pythonで文字列のリストを分類したい

これどうやってするの?


1
(1)文字ではない文字と(2)大文字と小文字がまったくない文字の可能性を考慮してください。
ジョンマチン

回答:


173

文字列にはいくつかの「isメソッド」があります。islower()そしてisupper()あなたのニーズを満たす必要があります:

>>> 'hello'.islower()
True

>>> [m for m in dir(str) if m.startswith('is')]
['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']

これらのメソッドを使用して文字列のリストを分類する方法の例を次に示します。

>>> words = ['The', 'quick', 'BROWN', 'Fox', 'jumped', 'OVER', 'the', 'Lazy', 'DOG']
>>> [word for word in words if word.islower()]
['quick', 'jumped', 'the']
>>> [word for word in words if word.isupper()]
['BROWN', 'OVER', 'DOG']
>>> [word for word in words if not word.islower() and not word.isupper()]
['The', 'Fox', 'Lazy']

こんにちは。短い答えをありがとう。しかし、大文字の単語を分類するにはどうすればよいですか?例:「混合単語」。3番目の例は、混合単語のすべての可能な組み合わせに適合しているようです。例: "mIxEd WoRD" ..
Swadhikar 2016

10
'hello'.istitle()
スティーブン

1

使ってみて一言したい reこのモジュールをます。特に大文字と小文字を区別する場合。

大量のデータを含む本番環境で使用するために正規表現をコンパイルするときに、オプションre.IGNORECASEを使用します。

>>> import re
>>> m = ['isalnum','isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'ISALNUM', 'ISALPHA', 'ISDIGIT', 'ISLOWER', 'ISSPACE', 'ISTITLE', 'ISUPPER']
>>>
>>>
>>> pattern = re.compile('is')
>>>
>>> [word for word in m if pattern.match(word)]
['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']

ただしin、この投稿で詳しく説明されているように、文字列の比較には常に演算子を使用するようにしてください

fast-operation-re-match-or-str

Pythonの学習を始めるのに最適な本の1つにも詳しく説明されています

慣用句-python

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.