Program Python pada Operasi String
Diterbitkan: 2022-04-26Dalam tutorial ini, Anda akan menulis program Python untuk menyelesaikan pertanyaan umum tentang operasi string .
Anda akan mempelajari cara memeriksa apakah string Python adalah palindrom , anagram , dan berada di dalam kasus judul .
String Python: Tinjauan Singkat
Dalam Python, string adalah tipe data bawaan yang kuat. Mereka dapat menyimpan urutan karakter.
Pengindeksan dalam String Python: Seperti semua iterable Python, string juga diindeks nol. Jadi indeks yang valid untuk string dengan panjang N adalah 0, 1, 2 sampai dengan N – 1.
Python juga mendukung pengindeksan negatif untuk mengakses elemen dari akhir string. Jadi -1 adalah indeks karakter terakhir dalam string, -2 adalah indeks karakter kedua hingga terakhir dalam string, dan seterusnya.
Kekekalan String Python : Selain itu, string dalam Python tidak dapat diubah, jadi Anda tidak dapat memodifikasinya di tempat. Namun, Anda dapat memanggil beberapa metode string dan mendapatkan salinan string dengan hasil yang diinginkan.
Sekarang kita telah meninjau dasar-dasar string Python, mari kita lanjutkan untuk memecahkan beberapa masalah sederhana namun menarik.
Ayo mulai.
Periksa apakah String Python adalah Palindrome
Masalah : Diberikan string Python, periksa apakah itu palindrom atau bukan.
Jika ya, kembalikan Benar; lain, kembalikan Salah.
Jadi masalah pertama kita adalah memeriksa apakah string yang diberikan adalah palindrom atau tidak.
Palindrom adalah string yang dibaca sama dari kiri ke kanan serta dari kanan ke kiri. Mari kita daftarkan beberapa contoh: mobil balap, referensi, level, madam, radar, dan seterusnya.
Berikut langkah-langkah untuk mengatasi masalah ini:
- Dapatkan salinan terbalik dari string dan simpan di variabel lain, jika diperlukan.
- Bandingkan nilai string asli dan string terbalik.
- Jika mereka sama, string adalah palindrom. Jadi kembalikan True , dan berhenti.
- Jika salinan asli dan salinan terbalik tidak sama, string bukan palindrom. Jadi kita harus mengembalikan False .
Operasi kuncinya adalah untuk mendapatkan salinan string yang dibalik. Dengan Python, ada beberapa cara berbeda yang bisa Anda lakukan.
Namun, kami akan membahas dua pendekatan:
- Menggunakan pengiris tali
- Menggunakan fungsi reversed() dan metode join()
Cara Membalikkan String Python Menggunakan Slicing
Sintaks <any_str>[start: stop: step]
mengembalikan sepotong string <any_str>
dari start
hingga tetapi tidak termasuk stop
, dengan ukuran step
.
- Jika Anda menghilangkan
start
, irisan dimulai di awal string. - Jika Anda tidak menentukan indeks
stop
, irisan akan diperpanjang hingga akhir string. - Dan nilai negatif dari
step
dapat digunakan untuk mengembalikan irisan mulai dari akhir string.
Jadi <any_str>[::-1]
mengembalikan salinan string yang terbalik.
Sel kode berikut berisi definisi fungsi is_palindrome()
.
Dibutuhkan string sebagai argumen, dan mengembalikan True
atau False
tergantung pada apakah itu palindrom atau tidak.
Di sini, kami telah menggunakan pengirisan string untuk mendapatkan salinan terbalik dari string.
def is_palindrome(this_str): rev_str = this_str[::-1] if (this_str == rev_str): return True else: return False
️ Sekarang setelah kita mendefinisikan fungsinya, kita dapat melanjutkan dan memanggil dengan string yang valid sebagai argumen.
is_palindrome("racecar") True
Dalam sel kode di atas, racecar
adalah palindrom. Jadi fungsi is_palindrome()
mengembalikan True
seperti yang diharapkan.
Sekarang, coba panggil fungsi dengan string apa pun yang bukan palindrom, seperti river
.
is_palindrome("river") False
Dan seperti yang Anda lihat, ia mengembalikan False
, yang benar.
Cara Membalikkan String Python Menggunakan reversed() dan join()
Dalam Python, Anda dapat menggunakan metode join()
bersama dengan fungsi reversed()
untuk membalikkan string.
- Fungsi
reversed()
mengembalikan iterator terbalik melalui karakter dalam string. - Metode
join()
kemudian dapat digunakan untuk menggabungkan karakter-karakter tersebut dalam urutan terbalik.
Dengan menggunakan metode di atas, Anda dapat menulis ulang fungsi is_palindrome()
seperti pada sel kode di bawah ini.
def is_palindrome(this_str): rev_str = ''.join(reversed(this_str)) if (this_str == rev_str): return True else: return False
Anda juga dapat menggunakan fungsi is_palindrome()
di dalam pemahaman daftar untuk mengumpulkan semua palindrom dari daftar string yang lebih panjang.
str_list = ["refer","blue","level","12321","dragon"] palindromes = [string for string in str_list if is_palindrome(string)] print(palindromes) # Output ['refer', 'level', '12321']
Berikut cara kerja kode di atas:
-
str_list
, panggilis_palindrome()
pada setiap string. - Jika
is_palindrome()
mengembalikanTrue
, tambahkan string ke daftarpalindromes
.
Seperti yang Anda lihat pada output di atas, palindromes
adalah daftar semua string palindrom di str_list
.
Periksa apakah Dua String Python adalah Anagram
Pertanyaan populer lainnya yang mungkin Anda temui dalam wawancara adalah untuk memeriksa apakah sepasang string str1
dan str2
adalah anagram atau bukan.
Dua string dikatakan anagram jika jumlah karakter dalam dua string sama persis. Ini berarti bahwa Anda dapat memperoleh salah satu string dengan mengubah atau mengatur ulang karakter dalam string lainnya.
Contoh anagram antara lain state-taste, save-vase, elbow-below, dan sebagainya.
Cara Memeriksa Anagram Menggunakan Objek Penghitung dengan Python
Cara sederhana dan intuitif adalah menghitung jumlah kemunculan setiap karakter dalam dua string. Dan kemudian periksa apakah jumlahnya sama.
Ini dapat dilakukan dengan lebih mudah menggunakan objek Counter
dari modul itertools
. Objek Penghitung mengembalikan kamus Python: dengan karakter sebagai kunci dan jumlah yang sesuai sebagai nilai .
Pertimbangkan string "save"
dan "vase"
seperti yang ditunjukkan di bawah ini.
str1 = "save" str2 = "vase"
Di sini, c1
dan c2
adalah objek penghitung yang berisi jumlah karakter dari string str1
dan str2
masing-masing.
from collections import Counter c1 = Counter(str1) c2 = Counter(str2) print(c1) print(c2) c1 == c2 # Output Counter({'s': 1, 'a': 1, 'v': 1, 'e': 1}) Counter({'v': 1, 'a': 1, 's': 1, 'e': 1}) True
c1 == c2
mengembalikan True
karena str1
dan str2
adalah anagram.
Dengan menggunakan logika ini, sekarang kita dapat melanjutkan dan mendefinisikan fungsi are_anagrams()
dengan dua parameter word1
dan word2
. Di badan fungsi, kami memeriksa apakah Counter(word1) == Counter(word2)
.
def are_anagrams(word1, word2): if Counter(word1) == Counter(word2): return True else: return False
️ Untuk memverifikasi, panggil are_anagrams()
dengan str1
, str2
sebagai argumen. Karena str1
dan str2
adalah anagram ("simpan" dan "vas"), fungsi mengembalikan True
, yang benar.
are_anagrams(str1, str2) True
Cara Memeriksa Anagram Menggunakan Salinan String yang Diurutkan
Ada cara lain yang bisa Anda lakukan.
Jika dua string adalah anagram, maka salinan yang diurutkan adalah sama.
Jadi kita dapat menulis ulang fungsi are_anagrams()
untuk memeriksa apakah versi str1
yang diurutkan sama dengan salinan str2
yang diurutkan. Jika keduanya sama, maka kedua string tersebut adalah anagram; lain, mereka tidak.
Menggunakan metode di atas untuk memeriksa kesetaraan salinan yang diurutkan, kita dapat menulis ulang fungsi are_anagrams()
sebagai berikut.
def are_anagrams(word1, word2): if sorted(word1) == sorted(word2): return True else: return False
Sekarang mari kita membuat beberapa panggilan fungsi.
- String "elbow" dan "below" adalah anagram dan fungsi
are_anagrams()
mengembalikanTrue
. - Dan "status" dan "terasa" bukan anagram, dan fungsinya mengembalikan
False
.
are_anagrams("below","elbow") True are_anagrams("state","tasted") False
Periksa apakah String Python ada dalam Judul Kasus
Inilah pertanyaan terakhir kami untuk tutorial ini.
Masalah : Diberi string: nama seseorang—dengan nama depan dan nama belakang.
Anda harus memeriksa apakah huruf pertama dari nama depan dan nama belakang menggunakan huruf kapital.
Jenis huruf besar di mana huruf pertama setiap kata ditulis dengan huruf kapital disebut huruf besar .
Jadi, Anda harus memeriksa apakah namanya ada dalam kasus judul:
1. Jika ya, keluarkan pesan bahwa pemformatan dalam huruf besar/kecil.
2. Jika tidak, kembalikan salinan string yang diformat dalam kasus judul
- Python memiliki built-in metode string
istitle()
, yang memeriksa apakah sebuah string dalam kasus judul.
<str>.istitle()
mengembalikanTrue
jika string<str>
diformat dalam kasus judul, jika tidak maka akan mengembalikanFalse
.
- Dan metode string
title()
Python mengembalikan salinan string yang diformat dalam kasus judul.
Jadi sekarang Anda dapat menggunakan dua metode ini untuk menyelesaikan masalah.
Tentukan fungsi check_titlecase()
yang menerima name
sebagai argumen.
- Anda dapat memanggil metode
istitle()
pada string input untuk memeriksa apakah itu diformat dalam kasus judul. - Jika
True
, Anda dapat mencetak bahwa string sudah dalam huruf besar/kecil. - Jika tidak, Anda dapat memanggil metode
title()
dan mengembalikan salinan string dalam case judul.
Sel kode berikut menunjukkan definisi fungsi check_titlecase()
.
def check_titlecase(name): if name.istitle(): print(f"'{name}' is already formatted in title case.") else: return name.title()
Sekarang mari kita panggil metode check_titlecase()
dengan argumen.
check_titlecase("jane smith") # Output Jane Smith
Pada output di atas, Anda dapat melihat bahwa string "Jane Smith" sekarang berada dalam huruf besar/kecil.
️ Mari kita ambil contoh lain.
check_titlecase("agatha Christie") # Output Agatha Christie
Kali ini, mari kita panggil fungsi dengan string berselubung judul.
check_titlecase("Grace Hopper") # Output 'Grace Hopper' is already formatted in title case.
Kami mendapat pemberitahuan bahwa string diformat dalam kasus judul, dan fungsinya berfungsi seperti yang diharapkan.
Kesimpulan
Sekarang mari kita rangkum masalah yang telah kita bahas sejauh ini.
- Untuk memeriksa apakah sebuah string adalah palindrom, periksa apakah string dan versi terbaliknya sama. Anda dapat menggunakan metode pengirisan string atau built-in untuk membalikkan string.
- Untuk memeriksa apakah dua string adalah anagram, periksa apakah salinan yang diurutkan sama. Dan untuk mengurutkan string, gunakan fungsi sort () bawaan.
- Untuk memverifikasi apakah sebuah nama berada dalam huruf besar/kecil judul, gunakan metode .istitle() untuk memeriksa dan metode .title( ) untuk mendapatkan salinan huruf besar-judul dari string.
Saya harap Anda menikmati tutorial ini tentang string Python. Sebagai langkah selanjutnya, pelajari cara menggunakan pemahaman daftar di Python atau pelajari tentang operator not equal di Python.
Selamat belajar dan coding!