Überprüfen Sie, ob die Zeichenfolge in Python in Groß-, Klein- oder Großbuchstaben geschrieben ist

91

Ich möchte eine Liste von Zeichenfolgen in Python klassifizieren, je nachdem, ob es sich um Groß-, Klein- oder Großbuchstaben handelt

Wie kann ich das machen?

Shreyas
quelle
1
Betrachten Sie die Möglichkeiten von (1) Zeichen, die keine Buchstaben sind, und (2) Buchstaben, die überhaupt keine Groß- und Kleinschreibung haben.
John Machin

Antworten:

168

Es gibt eine Reihe von "is-Methoden" für Zeichenfolgen. islower()und isupper()sollte Ihre Bedürfnisse erfüllen:

>>> 'hello'.islower()
True

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

Hier ist ein Beispiel für die Verwendung dieser Methoden zum Klassifizieren einer Liste von Zeichenfolgen:

>>> 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']
Raymond Hettinger
quelle
Hallo. danke für die kurze antwort. Aber wie klassifiziere ich Wörter, die groß geschrieben werden? Zum Beispiel: 'Mixed Word'. Das dritte Beispiel scheint für alle möglichen Kombinationen gemischter Wörter geeignet zu sein, Beispiel: "mIxEd WoRD".
Swadhikar
10
'hallo'.istitle ()
Stephen
0

Ich möchte einen Gruß für die Verwendung des reModuls dafür geben. Speziell bei Groß- / Kleinschreibung.

Wir verwenden die Option re.IGNORECASE, während wir den regulären Ausdruck für die Verwendung in Produktionsumgebungen mit großen Datenmengen kompilieren.

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

Versuchen Sie jedoch immer, den inOperator für den Zeichenfolgenvergleich zu verwenden, wie in diesem Beitrag beschrieben

schneller-betrieb-re-match-or-str

Ebenfalls detailliert in einem der besten Bücher, mit denen Sie Python lernen können

idiomatische Python

eleijonmarck
quelle