Перевірте, чи рядок у верхній, нижній чи змішаній регістрі в Python


92

Я хочу класифікувати список рядків у Python залежно від того, чи є вони великими, малими або змішаними

Як я можу це зробити?


1
Розглянемо можливості (1) символів, які не є буквами, та (2) букв, які взагалі не мають регістру.
John Machin

Відповіді:


173

Існує ряд методів "є" для рядків. 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" ..
Свадхікар

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оператор для порівняння рядків, як описано в цій публікації

швидша операція-повторне збіг-або-вул

Також детально описано в одній з найкращих книг, з якої слід почати вивчати python

ідіоматичний-пітон

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.