Bagaimana Anda mengganti semua kemunculan karakter dalam sebuah string dengan python?

Tahukah Anda bahwa String adalah objek yang tidak dapat diubah di Python? . Oleh karena itu muncul kebutuhan untuk menggunakan fungsi yang berbeda agar dapat beroperasi pada string. Pada artikel ini, kita akan belajar cara mengganti banyak karakter dalam sebuah string dengan python

Sebelum melangkah lebih jauh, mari kita memoles sedikit pada Strings

Apa itu String?

Dalam Python, semuanya adalah objek. String juga merupakan objek Python, tetapi umumnya didefinisikan sebagai urutan karakter yang diapit di antara tanda kutip ( baik ' ' atau " " ). Karakter ini dapat berupa a-z, A-Z, 0-9, atau karakter khusus (seperti $, %) dan spasi putih (' ')

Apa yang Anda maksud dengan Mengganti Banyak Karakter dalam sebuah String?

Kebutuhan untuk mengganti beberapa karakter (mungkin satu atau lebih) dari sebuah string seringkali muncul saat menghadapi masalah. Namun pertanyaannya adalah, apa yang Anda pahami dengan mengganti banyak karakter dalam sebuah string?

String memiliki banyak operasi yang harus dilakukan padanya. Namun saat kita mengatakan "mengganti karakter dalam string dengan Python", kasus berikut muncul di benak kita

  1. Mengganti karakter dalam String dengan karakter lain. Misalnya, katakanlah kita memiliki string "Favtutor" dan kita ingin mengganti kemunculan pertama 't' dengan 'T'. Sekarang, karena kita hanya mengganti 't' dengan 'T' yang lain, ini dikenal sebagai mengganti satu karakter dalam sebuah string
  2. Mengganti Semua kemunculan karakter dalam String dengan karakter lain. Mari kita ambil contoh di atas, katakanlah Anda ingin mengganti kemunculan "t" dalam string "Favtutor" dengan 'T'. Ini akan menghasilkan string. "FavTuTor". Karenanya, ini menggantikan semua kemunculan karakter dalam sebuah string. (Anda selalu dapat memberikan jumlah kemunculan, dari karakter itu, yang ingin Anda ganti)
  3. Mengganti Banyak Karakter dalam sebuah String dengan karakter yang 'sama'. Misalnya, Anda memiliki string "Halo dunia" dan Anda ingin mengganti karakter, ucapkan "l" dan "o", dengan karakter lain, ucapkan '. '. Ini akan mengakibatkan. "Dia. W. r. d". Ini adalah contoh mengganti banyak karakter dalam sebuah string dengan satu karakter (sama).
  4. Mengganti Banyak Karakter dalam sebuah String dengan Karakter Lain (berbeda). Sebagai contoh, Mari ambil pernyataan, "String tidak dapat diubah". Anda perlu mengganti karakter, misalnya ['r', 'm', 'i'], dengan, mari kita ambil ['R', '. ', 'M'], dalam urutan masing-masing, i. e. 'r' diganti dengan 'R', "M" diganti dengan '. ' dan 'i' diganti dengan 'M'. Oleh karena itu, ini akan menghasilkan "StRMngs aRe M. dapat digunakan". Terkadang, grup dari banyak karakter ini juga dapat disebut sebagai 'SubString'
  5. Menghapus karakter dalam string. Sebagai contoh, mari pertimbangkan string "Fav Tutor". Sekarang, katakanlah Anda perlu menghapus spasi kosong (' ') antara 'Fav' dan 'Tutor'. Anda dapat menghapus ruang kosong ini dengan menggantinya dengan (""). Oleh karena itu, output di sini akan menjadi. "Tutor Favorit"

Di sini Anda dapat mempelajari cara menghapus spasi dari string dengan python

Anda pasti bertanya-tanya bagaimana kami dapat melakukan perubahan (di sini, mengganti karakter) pada string. String tidak dapat diubah, bukan?

Ya, String tidak dapat diubah. Metode (Anda akan segera mengetahuinya) mengambil string asli sebagai input dan mengembalikan string yang diubah (setelah mengganti karakter) sebagai output. Output ini disimpan dalam variabel string lain. Oleh karena itu, kita perlu memiliki variabel lain (objek string) untuk menyimpan keluaran yang diperoleh. Dengan demikian, tidak ada perubahan yang dilakukan pada string asli, mempertahankan propertinya yang tidak dapat diubah

Bagaimana Cara Mengganti Banyak Karakter dalam sebuah String dengan Python?

Python menawarkan berbagai modul dan metode untuk mengganti banyak karakter dalam sebuah string. Sekarang, banyak karakter ini dapat terpisah atau bersama-sama sebagai 'kata'. Sementara kita berfokus untuk mengganti banyak karakter, metode ini juga dapat diterapkan untuk mengganti satu karakter dalam sebuah string dengan Python.  

Mari kita mulai

01) Menggunakan metode replace()

Python menawarkan metode replace() untuk menangani penggantian karakter (tunggal atau ganda) dalam sebuah string. Metode ganti mengembalikan objek (string) baru yang menggantikan kolom (karakter) tertentu dengan nilai baru.  

Metode replace() mengambil dua parameter sebagai input, yang pertama adalah pola yang ingin Anda (cocokkan dalam string) untuk diganti dan parameter kedua adalah pola (karakter) yang ingin Anda ganti.  

Sintaks yang paling banyak digunakan untuk replace() adalah

Obyek baru = originalString. replace('karakter untuk diganti', 'karakter untuk diganti dengan')

Mari kita ambil contoh

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B")

print("Original string: ", string)
print("New string: ", changed_string)

 

Keluaran.  

Original string:  Bubblegum
New string:  BuBBlegum
_

 

Perhatikan bagaimana 'b' di string asli 'Bubblegum' diganti dengan 'B'. Ini adalah contoh mengganti beberapa kejadian dari satu karakter dalam sebuah string

Metode replace() juga memiliki parameter ketiga (opsional) di mana Anda dapat menyebutkan jumlah penggantian yang ingin dilakukan

Artinya, jika ada kata, misalnya, "Bubblegum" yang memiliki lebih dari satu kemunculan karakter, di sini 'b', maka kita dapat memasukkan parameter ketiga sebagai 1, seandainya kita hanya perlu mengganti satu 'b' dari

Oleh karena itu, sintaks dasar untuk metode replace() adalah

Obyek baru = originalString. replace('karakter yang akan diganti', 'karakter yang akan diganti, jumlah penggantian yang akan dilakukan)

Mari kita lihat kode untuk contoh ini

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)

 

Secara default, semua kemunculan parameter pertama diganti dalam string

Keluaran

Original string:  Bubblegum
New string:  BuBblegum

 

Perhatikan bagaimana hanya kemunculan pertama 'b' yang digantikan oleh 'B'. Ini terjadi karena jumlah penggantian yang akan dilakukan disetel ke 1

02) Menggunakan replace() dengan Daftar

Pada metode di atas, kita telah melihat penggunaan metode replace() untuk mengganti karakter tunggal (kejadian tunggal atau lebih) dengan karakter lain. Metode replace() juga dapat digunakan untuk mengganti banyak karakter (berbeda) dengan karakter lain (sama atau berbeda untuk masing-masing).

Menggunakan for loop. Cara paling umum untuk bekerja dengan daftar adalah menggunakan for a loop. Untuk mengganti banyak karakter (misalkan berbeda) menggunakan metode replace() , Anda dapat membuat daftar semua karakter, yang akan dihapus, dalam daftar.  

Contoh cara mendeklarasikan daftar

# multiple characters to be replace

string = "FavTutor Blog: How to Remove multiple characters in a string in Python"
# let's say we need to replace characters - 't', 'l', 'r'
# creating a list for the characters to be replaced
char_remov = ['t', 'l', 'r']
_

 

Anda mungkin bertanya-tanya, mengapa kita membuat daftar atau bahkan menggunakan perulangan for ketika kita bisa langsung memanggil replace() pada setiap karakter

Cukup sederhana, bukan?

Tidak, tidak. Anda akan menemukan alasannya nanti di blog. (Jadi, perhatikan hal itu. )

Setelah menginisialisasi daftar, Anda dapat mengganti karakter yang disebutkan dengan karakter yang sama (mis. e. semuanya satu per satu) atau dengan banyak karakter (mis. e. karakter yang berbeda untuk masing-masing)

Kasus. Mengganti beberapa karakter dengan karakter yang sama

# multiple characters to be replace
string = "FavTutor Blog: How to Remove multiple characters in a string in Python"
# let's say we need to replace characters - 't', 'l', 'r'
# creating a list for the characters to be replaced
char_remov = ["t", "l", "r"]

print("Original string: " + string)
# let's say we need to replace them with a special character '#'
# Using the for loop for each character of char_remov

for char in char_remov:
    # replace() "returns" an altered string
    string = string.replace(char, "#")

print("Altered string: " + string)

 

Anda akan melihat bagaimana saya menggunakan for loop untuk menguraikan string untuk 'setiap karakter' dalam daftar, untuk diganti dengan karakter lain (seperti "#").  

Keluaran

Original string: FavTutor Blog: How to Remove multiple characters in a string in Python
Altered string: FavTu#o# B#og: How #o Remove mu##ip#e cha#ac#e#s in a s##ing in Py#hon
_

 

Sekali lagi, perhatikan bahwa kami telah mengganti karakter yang akan diganti (elemen dalam daftar char_remov) dengan karakter yang sama ('#') di atas

03) Menggunakan replace() dengan Kamus

Kita juga bisa menggunakan karakter yang berbeda untuk setiap karakter yang akan diganti. Untuk mencapai ini, Anda harus mengetahui kamus

Apa itu Kamus dengan Python? . Ini adalah tipe data lain yang ditawarkan oleh Python, juga dianggap sebagai implementasi Python dari struktur data larik asosiatif. Ini bisa berubah dan tidak mengizinkan duplikat apa pun karena kunci hanya dapat memiliki satu nilai

Kamus diwakili oleh. {}

Contoh kamus dapat dilihat sebagai

# example to declare a dictionary
# dictionary = {'key' : value}
# method 1
dictionary = {"FavTutor": "blogs", "language": "Python"}

# accessing dictionary values
value1 = dictionary.get("FavTutor")
print("Values: ", value1, " in ", dictionary.get("language"))

 

Di atas adalah salah satu metode untuk mendeklarasikan kamus. Itu juga menunjukkan salah satu pendekatan untuk mendapatkan nilai dengan bantuan kunci

Keluaran

Values:  blogs  in  Python
_

 

Sekarang setelah Anda mengetahui apa itu kamus dan bagaimana penggunaannya, mari kita kembali mengganti karakter dalam sebuah string. Mari pertimbangkan contoh yang sama yang digunakan sebelumnya tetapi ganti setiap karakter dengan karakter yang berbeda. (Mari kita coba menggantinya dengan bentuk huruf besar. Ini akan mudah diperhatikan. )

Kasus. Mengganti banyak karakter dengan karakter berbeda dalam sebuah string dengan Python

# multiple characters to be replaced
string = "Favtutor Blog: How to Remove multiple characters in a string in Python"
# characters to be replaced - 't', 'l', 'r', 's'
# characters to replace with -'T', 'L', 'R', 'S'

print("Original string: ", string)

""" creating a dictionary to replace characters
key - character to be replaced
value - character to replace with """

to_remov = {"t": "T", "l": "L", "r": "R", "s": "S"}

# .keys() returns a list of all the keys in the dictionary
for char in to_remov.keys():
    # dictionaryName[keys] - another way to get value
    string = string.replace(char, to_remov[char])

print("Altered string: " + string)
_

 

Penggunaan kamus memudahkan untuk mengubah setiap karakter menjadi karakter yang berbeda dengan bantuan key-value pair. Meskipun Anda dapat menggunakan kamus untuk mengganti beberapa karakter dengan satu karakter, penggunaannya tidak disarankan untuk melakukannya (karena itu tidak perlu)

Keluaran

Original string:  Bubblegum
New string:  BuBBlegum
_0

 

Saya harap Anda telah menemukan jawaban atas pertanyaan kami. 'Mengapa kita perlu menggunakan loop?'

Nah, karena kita perlu mengganti banyak karakter dalam sebuah string, kebutuhan akan sebuah loop benar-benar terbukti. Kita dapat memanggil metode replace() untuk setiap karakter yang akan dihapus, tetapi berapa lama Anda akan mengulangi prosesnya?

Selain itu, lebih sulit melacak daftar panjang karakter yang akan diganti. Oleh karena itu, dengan membuat daftar (atau membuat kamus) karakter yang akan diganti, mudah bagi kami untuk mengakhiri proses pengulangan yang panjang dengan bantuan loop.

Ingat itu. Ini cukup mendasar tetapi sering terjadi dalam wawancara

Metode replace() adalah metode paling umum untuk mengganti karakter apa pun dalam sebuah string. Anda dapat menggunakan salah satu versi di atas untuk mengganti banyak karakter dalam sebuah string dengan Python. Ada simbol khusus (seperti '. ') yang juga dapat digunakan dengan ekspresi. Penggunaan karakter atau pola khusus untuk menggantikan ini terlibat dalam ekspresi reguler (atau RegEx)

04) Menggunakan modul ulang

Python menawarkan 're module' untuk memberikan kemudahan saat bekerja dengan ekspresi Reguler. Anda harus tahu bahwa ekspresi reguler adalah urutan karakter yang membentuk pola pencarian. Karenanya, ekspresi reguler pada dasarnya adalah string. Anda juga dapat mengganti banyak karakter dalam sebuah string dengan bantuan 're module'

Pada dasarnya ada dua cara untuk mengganti karakter

  1. Menggunakan fungsi sub() dengan karakter meta atau urutan khusus
  2. Menggunakan fungsi sub() dengan daftar dan kamus

Sebelum beralih ke metode ini, mari pelajari tentang fungsi sub()

Fungsi sub() dalam modul re. Modul re di Python menawarkan fungsi sub() yang menggantikan karakter yang cocok (karakter yang diberikan dalam string) dengan karakter (baru) yang diberikan. Ini mengembalikan string dengan karakter baru di tempatnya. Perhatikan bahwa Anda perlu mengimpor modul re untuk menggunakan fungsi sub()

Sintaks dasar untuk fungsi sub() adalah

string baru = re. sub( 'characterToBeReplaced', 'characterToReplaceWith', stringName )

Mari kita ambil contoh untuk memahami cara kerja fungsi sub()

Kasus. Mengganti satu karakter dengan karakter lain dalam sebuah string

Original string:  Bubblegum
New string:  BuBBlegum
_1

 

Huruf 't' di sini juga dianggap sebagai ekspresi reguler. Perhatikan juga bahwa, tidak seperti metode replace(), nama string diteruskan sebagai parameter input ke sub fungsi

Keluaran

Original string:  Bubblegum
New string:  BuBBlegum
_2

 

Fungsi sub() mencari string untuk pola (karakter) dan kemudian mengganti kecocokan (pola) dengan karakter baru. Ini mengembalikan string baru dengan perubahan yang dilakukan. Perhatikan bahwa Anda juga dapat menentukan jumlah penggantian yang akan terjadi, dengan meneruskan parameter "jumlah" di bagian akhir. Oleh karena itu, sintaks dasar sub akan menjadi

string baru = re. sub('charactersToBeReplaced', 'characterToReplaceWith' , stringName, count )

Sekarang, mari beralih ke mengganti banyak karakter menggunakan fungsi sub(), dengan bantuan karakter khusus

Ingatlah bahwa karakter meta adalah karakter dengan arti khusus (misalnya - '. ' untuk 'salah satu atau') dan urutan khusus seperti '\s' untuk spasi putih. Karakter meta atau urutan khusus ini dapat digunakan untuk mengganti banyak karakter dalam sebuah string

Mari perhatikan contoh di bawah ini

Kasus. Mengganti banyak karakter dalam sebuah string dengan satu karakter, menggunakan urutan khusus dan karakter meta

Original string:  Bubblegum
New string:  BuBBlegum
_3

 

Perhatikan bahwa saya telah menggunakan urutan khusus ('\s') serta karakter meta ('. ') pada contoh di atas

Keluaran

Original string:  Bubblegum
New string:  BuBBlegum
_4

 

Ini adalah cara lain untuk mengganti banyak karakter menggunakan fungsi sub(). Namun cara ini bisa digunakan hingga jumlah karakter yang akan diganti dibatasi hanya beberapa saja. Sama seperti sebelumnya, kita perlu menggunakan loop untuk bekerja dengan mengganti banyak karakter (lebih dari beberapa). Fungsi sub() juga dapat digunakan dengan daftar serta kamus.  

Mari kita ambil contoh penggunaan fungsi sub() dengan kamus

Kasus. Mengganti beberapa karakter dalam sebuah string dengan karakter yang berbeda menggunakan kamus

Original string:  Bubblegum
New string:  BuBBlegum
_5

 

Urutan karakter (dirujuk dengan nama variabel 'char' dan nilai dalam kamus) adalah ekspresi reguler.  

Keluaran

Original string:  Bubblegum
New string:  BuBBlegum
_0

 

Selain fungsi sub(), modul re juga menawarkan fungsi subn(), mirip dengan fungsi sub(). Satu-satunya perbedaan adalah fungsi subn() juga menyediakan jumlah penggantian yang dibuatnya dalam string. Selain itu, fungsi sub() juga dapat digunakan dengan fungsi "lambda".

Anda harus mencoba menggunakan fungsi di atas. Mereka mungkin mengarahkan Anda ke hasil yang diinginkan

05) Menggunakan translate() dan maketrans()

Metode yang dibahas sejauh ini melibatkan ekspresi reguler dan dapat digunakan dengan daftar dan kamus. Namun, Python menawarkan metode lain yang menggunakan kamus untuk memetakan nilai lama ke nilai baru, dan karenanya mengganti banyak karakter dalam sebuah string

Metode maketrans() menghasilkan tabel pemetaan (kamus) antara karakter asli dan penggantinya. Lihat contoh di bawah ini

Original string:  Bubblegum
New string:  BuBBlegum
_7

 

Metode maketrans() membuat tabel (kamus) yang memetakan nilai lama dengan nilai baru

Keluaran

Original string:  Bubblegum
New string:  BuBBlegum
_8

 

Perhatikan bahwa kamus (dikembalikan oleh maketrans()) menyimpan nilai ASCII dari karakter, (keduanya, untuk diganti dan diganti dengan)

Fungsi translate() menerima tabel yang dibuat oleh maketrans() dan menghasilkan string yang diterjemahkan. Lihatlah contoh di bawah ini untuk mengganti banyak karakter dalam sebuah string dengan Python

Original string:  Bubblegum
New string:  BuBBlegum
_9

 

Keluaran

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
0

 

Ini adalah contoh lain untuk mengganti banyak karakter dalam sebuah string menggunakan kamus. Anda dapat menggunakan metode di atas untuk semua kasus yang disebutkan di atas

Perbandingan antara metode translate() dan replace()

Metode translate() dan metode replace(), keduanya adalah fungsi bawaan di Python, untuk mengganti banyak karakter dalam sebuah string. Anda dapat menggunakan salah satunya untuk melakukan tugas. Berikut perbandingan kedua metode tersebut

1. Metode translate() hanya mengganti karakter tunggal dengan string arbitrer sedangkan metode replace() memungkinkan penggantian string dengan panjang arbitrer. Sebagai contoh

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
1

 

Keluaran

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
2

 

Perhatikan kesalahan yang diperoleh saat memanggil metode maketrans(). Kesalahan ini terjadi karena perbedaan panjang karakter (atau jumlah karakter) yang akan diganti dan karakter yang akan diganti. Sekarang, mari kita lihat bagaimana metode replace() bekerja dengan case

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
_3

 

Metode replace() memperlakukan parameter input 'mit' sebagai string secara keseluruhan daripada memperlakukannya sebagai urutan karakter individual. Juga, panjang sembarang parameter tidak harus sama

Keluaran

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
_4

 

Oleh karena itu, Anda akan melihat bahwa alih-alih mengganti 'm', 'i', 't', metode replace() hanya menggantikan kombinasi 'mit' dengan 'M'

2. Metode translate() dapat melakukan penggantian "banyak karakter" pada satu panggilan sedangkan metode replace() hanya dapat mengganti "string tunggal" sekaligus

3. Metode translate() dapat digunakan jika Anda tidak yakin apakah karakter baru (karakter yang akan diganti) juga diganti

Sulit?

Misalnya, pertimbangkan sebuah string, ucapkan 'abcd'. Sekarang, Anda perlu mengganti karakter 'a' dengan 'b', 'b' dengan 'c', dan 'c' dengan 'd'

Singkatnya, input = 'abcd'       dan          output yang diharapkan = 'bcdd'

Mari bandingkan kedua metode pada input di atas

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
5

 

Perhatikan perbedaan antara output yang dikembalikan oleh kedua metode

Keluaran

# Using replace() method
string = "Bubblegum"

# replacing the 'b' character with 'B'
changed_string = string.replace("b", "B", 1)

print("Original string: ", string)
print("New string: ", changed_string)
6

 

Kedua metode tersebut menghasilkan output yang berbeda. Anda pasti bertanya-tanya "bagaimana", bukan?

Ini terjadi karena metode replace() dilakukan dalam satu lingkaran, satu demi satu. Mari buat daftar perubahan untuk pemahaman yang lebih baik

a. Masukan = 'abcd'

b. Ganti 'a' dengan 'b' => string = 'bbcd'

c. Ganti 'b' dengan 'c' => string = 'cccd'

d. Ganti 'c' dengan 'd' => 'dddd'

Oleh karena itu outputnya = 'dddd'

Jadi, dalam hal ini, metode translate() bertemu menghasilkan hasil yang diharapkan

Oleh karena itu, saat membandingkan kedua metode, Anda akan melihat bahwa Anda harus menggunakan metode translate() untuk mengganti beberapa karakter karena meningkatkan fungsionalitas. Walaupun metode replace() memiliki kelebihan tersendiri dalam optimasi waktu

Juga, periksa bagaimana mengganti satu karakter dalam sebuah string dengan python

Kesimpulan

Pada artikel ini, kita melihat bagaimana menggunakan fungsi bawaan Python untuk mengganti beberapa karakter dalam sebuah string. Tugas ini juga dapat dilakukan dengan menggunakan variasi loop yang berbeda pada string. Kami juga telah membandingkan metode dengan kasus penggunaan yang berbeda. Saya harap artikel ini membantu Anda menemukan metode yang cocok untuk kode Anda. Selamat mengkode

Bagaimana Anda mengganti beberapa kemunculan string dengan Python?

01) Menggunakan metode replace() . Metode ganti mengembalikan objek baru (string) menggantikan bidang tertentu (karakter) dengan nilai baru.

Bagaimana Anda mengganti semua kemunculan karakter dalam sebuah string?

Gunakan metode replace() untuk mengganti semua kemunculan karakter tertentu dalam sebuah string.

Apakah ganti () ganti semua instance Python?

replace() menerima. Secara default,. replace() akan menggantikan semua instance dari substring . Namun, Anda dapat menggunakan hitungan untuk menentukan jumlah kejadian yang ingin diganti.

Bagaimana Anda mengganti kemunculan string dengan Python?

Sintaksis dari replace() .
Sintaksis. rangkaian. ganti (lama, baru, hitung)
Parameter
Nilai Pengembalian. Ini mengembalikan salinan string di mana semua kemunculan substring diganti dengan substring lain