Bandingkan daftar dan string dengan python

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 tidak

Dalam 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
False

Penjelasan

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

listOfCities = ["Mumbai", "Bangaluru", "Noida"]
currCity = "noiDa"
for loc in listOfCities:
    print (" Case-Insensitive Comparison:  %s with %s: %s" % (loc, currCity, loc.lower() == currCity.lower()))
_

Keluaran

Case-Insensitive Comparison: Mumbai with noiDa: False
Case-Insensitive Comparison: Bangaluru with noiDa: False
Case-Insensitive Comparison: Noida with noiDa: True

Penjelasan

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: True

Penjelasan

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

Apa perbandingan antara daftar dan string di Python?

Apa Itu String di Python? . Poin yang perlu diperhatikan di sini adalah bahwa daftar adalah urutan urutan tipe objek dan string adalah urutan karakter yang berurutan . Inilah perbedaan utama antara keduanya.

Bagaimana Anda membandingkan string dan daftar?

Jawaban. Kesamaan antara Daftar dan String di Python adalah keduanya adalah urutan. Perbedaan di antara mereka adalah yang pertama, Daftar dapat diubah tetapi String tidak dapat diubah . Kedua, elemen daftar bisa dari tipe yang berbeda sedangkan String hanya berisi karakter yang semuanya bertipe String.

Bagaimana cara membandingkan dua daftar string dengan Python dan mengembalikan yang tidak cocok?

Membandingkan string menggunakan == dan. = . == dan. = adalah operator boolean, artinya mereka mengembalikan Benar atau Salah. Misalnya, == mengembalikan True jika kedua string cocok, dan False jika sebaliknya.

Bagaimana Anda memeriksa apakah suatu string ada dalam daftar Python?

Python Find String in List using count() Kita juga bisa menggunakan fungsi count() untuk mendapatkan jumlah kemunculan string di . Jika hasilnya 0, berarti string tidak ada dalam daftar. l1 = ['A', 'B', 'C', 'D', 'A', 'A', 'C'] s = 'A' hitung = l1.