Saya ingin mengklasifikasikan daftar string dengan Python tergantung pada apakah itu huruf besar, huruf kecil, atau huruf campuran
Bagaimana saya bisa melakukan ini?
Saya ingin mengklasifikasikan daftar string dengan Python tergantung pada apakah itu huruf besar, huruf kecil, atau huruf campuran
Bagaimana saya bisa melakukan ini?
Jawaban:
Ada sejumlah "metode is" pada string. islower()dan isupper()harus memenuhi kebutuhan Anda:
>>> 'hello'.islower()
True
>>> [m for m in dir(str) if m.startswith('is')]
['isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper']
Berikut adalah contoh cara menggunakan metode tersebut untuk mengklasifikasikan daftar string:
>>> 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']
Saya ingin memberikan teriakan untuk menggunakan remodul untuk ini. Khususnya dalam kasus sensitivitas huruf.
Kami menggunakan opsi re.IGNORECASE saat menyusun regex untuk digunakan dalam lingkungan produksi dengan data dalam jumlah besar.
>>> 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']
Namun cobalah untuk selalu menggunakan inoperator untuk perbandingan string seperti yang dijelaskan dalam posting ini
lebih cepat-operasi-ulang-pertandingan-atau-str
Juga dirinci dalam salah satu buku terbaik untuk mulai belajar python