Python String maketrans ()

Metode string maketrans () mengembalikan tabel pemetaan untuk terjemahan yang dapat digunakan untuk metode translate ().

Secara sederhana, maketrans()metode adalah metode statis yang membuat pemetaan satu ke satu karakter ke terjemahan / penggantinya.

Ini menciptakan representasi Unicode dari setiap karakter untuk terjemahan.

Pemetaan terjemahan ini kemudian digunakan untuk mengganti karakter ke karakter yang dipetakan ketika digunakan dalam metode translate ().

Sintaks maketrans()metode adalah:

 string.maketrans (x (, y (, z)))

Di sini, y dan z adalah argumen opsional.

Parameter string maketrans ()

maketrans() Metode membutuhkan 3 parameter:

  • x - Jika hanya satu argumen yang diberikan, itu pasti kamus.
    Kamus harus berisi pemetaan 1-ke-1 dari string karakter tunggal ke terjemahannya ATAU nomor Unicode (97 untuk 'a') ke terjemahannya.
  • y - Jika dua argumen dilewatkan, itu harus berupa dua string dengan panjang yang sama.
    Setiap karakter di string pertama adalah pengganti indeks yang sesuai di string kedua.
  • z - Jika tiga argumen dilewatkan, setiap karakter dalam argumen ketiga dipetakan ke Tidak Ada.

Nilai kembali dari String maketrans ()

The maketrans()Metode mengembalikan tabel terjemahan dengan pemetaan 1-to-1 dari ordinal Unicode untuk nya penerjemahan / pengganti.

Contoh 1: Tabel terjemahan menggunakan kamus dengan maketrans ()

 # example dictionary dict = ("a": "123", "b": "456", "c": "789") string = "abc" print(string.maketrans(dict)) # example dictionary dict = (97: "123", 98: "456", 99: "789") string = "abc" print(string.maketrans(dict))

Keluaran

 (97: '123', 98: '456', 99: '789') (97: '123', 98: '456', 99: '789') 

Di sini, dikt kamus didefinisikan. Ini berisi pemetaan karakter a, b dan c masing-masing ke 123, 456, dan 789.

maketrans() membuat pemetaan ordinal Unicode karakter ke terjemahan yang sesuai.

Jadi, 97 ('a') dipetakan ke '123', 98 'b' ke 456 dan 99 'c' ke 789. Hal ini dapat ditunjukkan dari keluaran kedua kamus.

Juga, jika dua atau lebih karakter dipetakan dalam kamus, itu menimbulkan pengecualian.

Contoh 2: Tabel terjemahan menggunakan dua string dengan maketrans ()

 # first string firstString = "abc" secondString = "def" string = "abc" print(string.maketrans(firstString, secondString)) # example dictionary firstString = "abc" secondString = "defghi" string = "abc" print(string.maketrans(firstString, secondString))

Keluaran

 (97: 100, 98: 101, 99: 102) ValueError: dua argumen maketrans pertama harus memiliki panjang yang sama 

Di sini pertama, dua string dengan panjang yang sama abcdan defditentukan. Dan terjemahan yang sesuai dibuat.

Mencetak hanya terjemahan pertama memberi Anda pemetaan 1-ke-1 ke ordinal Unicode setiap karakter di firstString ke karakter yang diindeks sama di secondString.

Dalam hal ini, 97 ('a') dipetakan ke 100 ('d'), 98 ('b') hingga 101 ('e') dan 99 ('c') hingga 102 ('f').

Mencoba membuat tabel terjemahan untuk string yang panjangnya tidak sama memunculkan ValueErrorpengecualian yang menunjukkan bahwa string tersebut harus memiliki panjang yang sama.

Contoh 3: Tabel terjemahan dengan string yang dapat dilepas dengan maketrans ()

 # first string firstString = "abc" secondString = "def" thirdString = "abd" string = "abc" print(string.maketrans(firstString, secondString, thirdString))

Keluaran

 (97: Tidak Ada, 98: Tidak Ada, 99: 102, 100: Tidak Ada) 

Di sini, pertama, pemetaan antara dua string firstString dan secondString dibuat.

Kemudian, argumen ketiga thirdString mengatur ulang pemetaan setiap karakter di dalamnya Nonedan juga membuat pemetaan baru untuk karakter yang tidak ada.

Dalam hal ini, thirdString menyetel ulang pemetaan 97 ('a') dan 98 ('b') menjadi None, dan juga membuat pemetaan baru untuk 100 ('d') yang dipetakan None.

Artikel yang menarik...