Python - Mengubah Suai Rentetan

Helo di sana, penyihir Python masa depan! Hari ini, kita akan melakukan perjalanan yang menarik ke atas dunia pengubahan rentetan di Python. Sebagai guru sains komputer yang mesra di kampung anda, saya di sini untuk mengajar anda melalui petualangan ini dengan penjelasan yang jelas, banyak contoh, dan mungkin beberapa tawa atau dua di atas jalan. Jadi, pegang wands virtual anda (papan kekunci), dan mari kita kongsikan!

Python - Modify Strings

Mengubah Rentetan kepada Senarai

Apabila saya pertama kali belajar tentang manipulasi rentetan, ia terasa seperti untuk membuka kuasa super rahsia. Salah satu trik yang paling berguna di atas rak penyihir kita adalah mengubah rentetan kepada senarai. Ini membenarkan kita untuk mengubah aksara individu, yang kita tidak boleh lakukan secara langsung dengan rentetan (mereka adalah immutable, ingat?).

Fungsi list()

Mari kita mula dengan cara yang paling mudah:

my_string = "Helo, Dunia!"
my_list = list(my_string)
print(my_list)

Output:

['H', 'e', 'l', 'o', ',', ' ', 'D', 'u', 'n', 'i', 'a', '!']

Apa yang terjadi di sini? Fungsi list() mengambil rentetan kita dan menjadikan setiap aksara menjadi elemen senarai. Ia seperti untuk memecahkan coklat menjadi rakam individu - kini kita boleh menikmati (atau mengubah) setiap rakam secara berasingan!

Method split()

Bila-bila masa, kita mahu untuk membahagikan rentetan kita kepada perkataan bukannya aksara. Itu di mana split() menjadi berguna:

sentence = "Python adalah hebat!"
word_list = sentence.split()
print(word_list)

Output:

['Python', 'adalah', 'hebat!']

Secara lalai, split() menggunakan ruang putih sebagai pemisah. Tetapi kita boleh menetapkan pemisah apa pun yang kita mahu:

date = "2023-05-15"
date_parts = date.split('-')
print(date_parts)

Output:

['2023', '05', '15']

Adakah yang kemas? Kita baru saja mengiris rentetan tarikh kita menjadi tahun, bulan, dan hari!

Mengubah dan Menggabungkan Kembali

Setelah kita mendapatkan senarai kita, kita boleh mengubahnya dan kemudian menggabungkannya kembali kepada rentetan:

my_list = list("Helo, Dunia!")
my_list[7] = 'P'  # Ubah 'D' kepada 'P'
new_string = ''.join(my_list)
print(new_string)

Output:

Helo, Punia!

Kita baru saja mengubah "Dunia" kepada "Punia"! Baiklah, mungkin bukan pengubahsuaian yang paling berguna, tetapi anda mendapatkan idea. Method join() adalah seperti yang terbalik dari split() - ia mengambil senarai kita dan melekatkan semua elemen kembali menjadi rentetan.

Menggunakan Modul Array

Sekarang, mari kita naik taraf dan bercakap tentang modul array. Modul ini menyediakan objek array yang lebih efisien daripada senarai untuk beberapa operasi, khususnya apabila berurusan dengan besar jumlah data.

Mencipta Array

Pertama, kita perlu untuk mengimport modul:

from array import array

# Cipta array dari aksara
char_array = array('u', 'Helo, Dunia!')
print(char_array)

Output:

array('u', 'Helo, Dunia!')

'Su' di sini adalah untuk aksara Unicode. Ia memberitahu Python jenis data yang kita simpan di atas array.

Mengubah Array

Kita boleh mengubah array kita seperti yang kita lakukan dengan senarai:

char_array[7] = 'P'
print(char_array.tounicode())

Output:

Helo, Punia!

Method tounicode() mengubah array kita kembali kepada rentetan. Ia seperti join() untuk array!

Bila untuk Menggunakan Array

Array boleh lebih efisien dalam penggunaan memori apabila berurusan dengan besar jumlah data jenis yang sama. Jika anda bekerja dengan ribuan atau jutaan aksara, array mungkin adalah rak anda yang terbaik!

Menggunakan Kelas StringIO

Terakhir tetapi tidak ketinggalan, mari kita bercakap tentang kelas StringIO. Alat yang cerdas ini membenarkan kita untuk bekerja dengan rentetan seperti mereka adalah fail. Ia adalah sangat berguna apabila anda bekerja dengan fungsi yang mengharapkan objek seperti fail.

Mencipta Objek StringIO

Pertama, kita perlu untuk mengimport itu:

from io import StringIO

# Cipta objek StringIO
string_io = StringIO("Helo, Dunia!")

Membaca dari StringIO

Kita boleh membaca dari objek StringIO kita seperti yang kita akan dari fail:

content = string_io.read()
print(content)

Output:

Helo, Dunia!

Menulis ke StringIO

Kita juga boleh menulis kepadanya:

string_io.write(" Apa khabar?")
string_io.seek(0)  # Kembali ke permulaan
print(string_io.read())

Output:

Helo, Dunia! Apa khabar?

seek(0) adalah penting di sini. Ia seperti untuk mengundur rakam untuk kembali ke permulaan supaya kita boleh membaca dari mula.

Bila untuk Menggunakan StringIO

StringIO adalah sangat membantu apabila anda bekerja dengan pustaka atau fungsi yang mengharapkan objek seperti fail, tetapi anda tidak mahu membuat fail sebenar. Ia seperti memiliki notepad virtual di atas memori komputer anda!

Ringkasan Method

Berikut adalah rakaman singkat bagi method yang kita cuba:

Method Keterangan Contoh
list() Mengubah rentetan kepada senarai aksara list("Helo")
split() Membahagikan rentetan kepada senarai subtajuk "Helo Dunia".split()
join() Menggabungkan elemen senarai kepada rentetan "".join(['H', 'e', 'l', 'o'])
array() Mencipta objek array array('u', 'Helo')
StringIO() Mencipta penimbal rentetan StringIO("Helo")

Dan itu adalah semua, rakyat! Kita telah melakukan perjalanan melalui wilayah pengubahan rentetan di Python, dari pengubahan senarai yang ringkas ke atas wilayah yang lebih maju array dan StringIO. Ingat, latihan membuatkan yang sempurna, jadi jangan takut untuk untuk eksperimen dengan alat ini. Siapa tahu? Anda mungkin hanya akan membuka penyihir Python yang hebat berikutnya! Sampaijumpa lagi, happy coding!

Credits: Image by storyset