Pertimbangkan kemungkinan (1) karakter yang bukan huruf dan (2) huruf yang tidak memiliki case sama sekali.
John Machin
Jawaban:
173
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 ifnot word.islower() andnot word.isupper()]
['The', 'Fox', 'Lazy']
Hai. terima kasih atas jawaban singkatnya. Tetapi bagaimana saya mengklasifikasikan kata-kata yang dikapitalisasi? Misalnya: 'Kata Campuran'. Tampaknya contoh ke-3 cocok untuk semua kemungkinan kombinasi kata campuran, contoh: "mIxEd WoRD" ..
Swadhikar
10
'hello'.istitle ()
Stephen
1
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
Jawaban:
Ada sejumlah "metode is" pada string.
islower()
danisupper()
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']
sumber
Saya ingin memberikan teriakan untuk menggunakan
re
modul 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
in
operator untuk perbandingan string seperti yang dijelaskan dalam posting inilebih cepat-operasi-ulang-pertandingan-atau-str
Juga dirinci dalam salah satu buku terbaik untuk mulai belajar python
idiomatic-python
sumber