Python'da dizenin büyük, küçük veya karışık olup olmadığını kontrol edin


92

Büyük harf, küçük harf veya karışık harf olmasına bağlı olarak Python'da bir dize listesi sınıflandırmak istiyorum

Bunu nasıl yapabilirim?


1
Harf olmayan (1) karakterlerin ve hiç harf içermeyen (2) harflerin olasılıklarını düşünün.
John Machin

Yanıtlar:


173

Dizelerde bir dizi "is yöntemi" vardır. islower()ve isupper()ihtiyaçlarınızı karşılamalıdır:

>>> 'hello'.islower()
True

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

Dizelerin listesini sınıflandırmak için bu yöntemlerin nasıl kullanılacağına dair bir örnek:

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

Selam. kısa cevap için teşekkürler. Fakat büyük harfle yazılmış kelimeleri nasıl sınıflandırırım? Örneğin: 'Karışık Kelime'. Görünüşe göre 3. örnek karışık kelimelerin tüm olası kombinasyonlarına uyuyor, örnek: "mIxEd WoRD" ..
Swadhikar

10
'merhaba'.istitle ()
Stephen

1

Bunun için remodülü kullanmak için bir not vermek istiyorum . Özellikle büyük / küçük harf duyarlılığı durumunda.

Büyük miktarda verinin bulunduğu üretim ortamlarında kullanılmak üzere regex'i derlerken re.IGNORECASE seçeneğini kullanıyoruz .

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

Bununla birlikte in, bu yayında ayrıntılı olarak açıklandığı gibi, dize karşılaştırması için her zaman operatörü kullanmaya çalışın

daha hızlı işlem yeniden eşleştirme veya str

Ayrıca python öğrenmeye başlamak için en iyi kitaplardan birinde ayrıntılı olarak

deyimsel-python

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.