Perbandingan string adalah fitur penting dari banyak aplikasi. Banyak software dan sistem database memerlukan pemrograman semacam itu untuk mencari perbedaan di antara string yang berbeda. Dalam artikel ini, Anda akan mempelajari tentang perbandingan string dan berbagai cara untuk membandingkan string
Apa itu perbandingan string?
Perbandingan string adalah proses membandingkan dua string. Kedua string ini bertindak sebagai operan atau parameter yang berpartisipasi untuk memeriksa perbedaannya. Sebagian besar, proses perbandingan menggunakan nilai ASCII atau nilai Unicode untuk membandingkan dua string. Ada tiga pendekatan pemrograman berbeda yang bisa kita gunakan untuk membandingkan dua string dengan Python. Sekarang mari kita bahas masing-masing secara rinci
Metode 1. Menggunakan Operator Relasional
Operator relasional sebagian besar digunakan untuk membandingkan dua konstanta. Karena, ini termasuk dalam kategori operator biner, ini juga membantu dalam membandingkan string dengan Python. Setelah menggunakan operator relasional pada kedua operan, ia akan mengembalikan True atau False tergantung pada kondisinya. Jenis operator dalam Python ini juga disebut operator pembanding. Ada 6 jenis operator pembanding di Python
== (Equal operator)Memeriksa apakah kedua operan sama atau tidak> (Lebih besar dari)Memeriksa apakah operan sisi kiri lebih besar dari operan sisi kanan< (Kurang dari)Memeriksa apakah operan sisi kanan adalah . = (Not equals)Memeriksa apakah kedua operan tidak sama atau tidakDalam kasus operator relasional Python, nilai Unicode dari setiap karakter dalam string diperiksa mulai dari elemen nol hingga indeks terakhir atau akhir string. Berdasarkan pemeriksaan semua Unicode operan sisi kiri yang cocok dengan operan Unicode sisi kanan, nilai Boolean dikembalikan
Contoh
print("Karlos" == "Karlos") print("Karlos" < "karlos") print("Karlos" > "karlos") print("Karlos" != "Karlos")Keluaran
True True False False_Penjelasan
Ini adalah program sederhana yang menggunakan operator relasional untuk membandingkan operan sisi kanannya dengan operan sisi kirinya. Di sini, operator memeriksa nilai Unicode dari setiap karakter dalam dua string dan mengembalikan nilai True jika kedua nomor Unicode cocok; . Fungsi print() akan menampilkan True atau False tergantung pada perbandingan string
Metode 2. Menggunakan adalah dan bukan (Identitas) operator
Dalam Python, operator == digunakan untuk membandingkan nilai untuk kedua operan sambil memeriksa kesetaraan. Tetapi operator 'is' Python (yang merupakan operator identitas) membantu dalam memeriksa apakah kedua operannya merujuk ke objek yang sama atau tidak. Hal ini juga terjadi pada kasus. = dan 'bukan' operator Python
Program
val1 = "Karlos" val2 = "Karlos" val3 = val1 valn = "karlos" print(" The ID of val1 is: ", hex(id (val1))) print(" The ID of val2 is: ", hex(id (val2))) print(" The ID of val3 is: ", hex(id (val3))) print(" The ID of valn is: ", hex(id (valn))) print(val1 is val1) print(val1 is val2) print(val1 is val3) print(valn is val1)Keluaran
The ID of val1 is: 0x21d012c4f70 The ID of val2 is: 0x21d012c4f70 The ID of val3 is: 0x21d012c4f70 The ID of valn is: 0x21d012c7cb0 True True True FalsePenjelasan
Di sini kita menggunakan operator identitas untuk memeriksa & membandingkan dua string. Di sini kami telah mendeklarasikan empat variabel yang akan menampung beberapa nilai string. Variabel val1 dan val2 akan menampung “Karlos” dan val3 akan menampung nilai val1. Valn terakhir akan memegang string "karlos". Sekarang, masing-masing adalah objek yang berbeda dan karenanya ID objek mungkin berbeda. Oleh karena itu, kami menggunakan kombinasi fungsi hex(id()) untuk mengambil dan menampilkan ID objek untuk setiap variabel yang dibuat
Anda akan melihat bahwa ID dari tiga objek pertama akan sama karena semuanya memiliki nilai yang sama (karena pengoptimalan ruang) dan karenanya print() akan menampilkan lokasi yang sama untuk ketiga objek ini. Dalam kasus objek valn, akan ada ID objek yang berbeda karena memiliki konstanta yang diinisialisasi berbeda. Dengan cara yang sama kita dapat mengatakan bahwa nilai yang dipegang oleh valn tidak sama dengan val1. Ini adalah bagaimana operator identitas dapat membantu dalam membandingkan dua string
Metode 3. Perbandingan String Insensitive
Pada topik sebelumnya, kita telah membahas bagaimana kita harus mencocokkan string yang tepat. Tapi, untuk melakukan perbandingan case-insensitive, kita harus menggunakan metode lower() dan upper(). Kita dapat menemukan kedua metode ini di bawah objek string Python. Metode upper() digunakan untuk mengonversi seluruh string menjadi huruf besar, sedangkan lower() digunakan untuk mengonversi semua string menjadi huruf kecilnya
Program
Keluaran
Case-Insensitive Comparison: Mumbai with noiDa: False Case-Insensitive Comparison: Bangaluru with noiDa: False Case-Insensitive Comparison: Noida with noiDa: TruePenjelasan
Dalam program ini, kami telah mengambil daftar string dengan tiga nilai berbeda. Kami telah mengambil currCity variabel lain yang menyimpan noiDa string lain. Selanjutnya, kita harus mengulangi daftar string (mis. e. , variabel listOfCities) untuk memeriksa apakah curCity cocok dengan salah satu string atau tidak. Juga, kita harus menggunakan objname. lower() untuk mengubah kedua string menjadi huruf kecil, lalu menggunakan operator == untuk membandingkan kedua oeprand
Metode 4. Menggunakan fungsi yang ditentukan pengguna
Terlepas dari semua teknik di atas, kita juga dapat membuat fungsi buatan pengguna sendiri menggunakan kata kunci 'def' dan mengambil setiap karakter dari kedua string dan membandingkannya menggunakan operator relasional. Fungsi ini akan memungkinkan dua parameter string yang perlu dibandingkan. Jika string cocok terlepas dari huruf besar atau kecil, itu akan menunjukkan pencocokan dengan mengembalikan nilai BENAR
Program
def strcmpr(strg, strgg): cnt1 = 0 cnt2 = 0 for i in range(len(strg)): if strg[i] >= "0" and strg[i] <= "9": cnt1 += 1 for i in range(len(strgg)): if strgg[i] >= "0" and strgg[i] <= "9": cnt2 += 1 return cnt1 == cnt2 print('Compare String 246 and 2468: ', strcmpr("246", "2468")) print('Compare String KARLOS and karlos:', strcmpr("KARLOS", "karlos"))_Keluaran
Compare String 246 and 2468: False Compare String KARLOS and karlos: TruePenjelasan
Ini adalah cara tradisional lain untuk membandingkan string dengan Python. Di sini kita secara manual membuat fungsi yang ditentukan pengguna yang akan menghitung semua karakter string satu per satu dan jika cocok mengembalikan True atau mengembalikan False. Namun dalam kasus ini, kami tidak memperhatikan sensitivitas huruf besar-kecil. Dan karenanya, fungsi strcmpr() kedua akan mengembalikan True
Metode 5. Menggunakan Ekspresi Reguler
Regex atau ekspresi reguler menentukan pola tertentu dalam elemen pemrograman. Di sini juga, kita akan menggunakan ekspresi reguler untuk menemukan pola karakter string yang dibandingkan. Untuk mengimplementasikan konsep regular expression dengan Python, kita akan menggunakan modul re. Kali ini kita akan menggunakan metode compile() dari modul re untuk memeriksa polanya
Program
import re stateList = ["Madhya Pradesh", "Tamil Nadu", "Uttar Pradesh", "Punjab"] pattern = re.compile("[Pp]radesh") for loc in stateList: if pattern.search(loc): print ("%s is matching with the search pattern" % loc)_Keluaran
Madhya Pradesh is matching with the search pattern Uttar Pradesh is matching with the search pattern_Penjelasan
Di sini, kita mengimpor modul re (regular expression) terlebih dahulu. Kemudian, kami mendefinisikan daftar yang memiliki nama dari 4 negara bagian yang berbeda. Sekarang, kita menggunakan re. compile() modul untuk memeriksa apakah string dalam daftar memiliki "Pradesh" dengan 'p' baik dalam huruf kecil atau huruf besar. Jika ya, perulangan for akan beralih melalui objek List iterable state dan jika polanya. search() menemukan loc yang cocok, itu akan mencetak pesan - "Ini cocok dengan pola pencarian"
Kesimpulan
Di antara semua ini, menggunakan operator relasional atau operator identitas memiliki signifikansi terbaik dan merupakan cara paling efisien untuk membandingkan string. Beberapa ujian kompetitif mungkin meminta Anda untuk menerapkan ekspresi reguler atau memeriksa string dengan ketidakpekaan huruf besar-kecil. Dalam hal ini, Anda harus menggunakan metode 3 dan metode 5. Tapi, pastikan metode 3 dan metode 5 tidak seefisien itu. Jika Anda hanya ingin memeriksa jumlah string maka metode 4 (teknik yang ditentukan pengguna) cocok untuk Anda