Python String maketrans ()

String maketrans () yöntemi, translate () yöntemi için kullanılabilen çeviri için bir eşleme tablosu döndürür.

Basit bir ifadeyle maketrans()yöntem, bir karakterin çevirisine / değiştirilmesine bire bir eşlemesini oluşturan statik bir yöntemdir.

Çeviri için her karakterin Unicode gösterimini oluşturur.

Bu çeviri eşlemesi daha sonra translate () yönteminde kullanıldığında bir karakterin eşlenen karakteriyle değiştirilmesi için kullanılır.

maketrans()Yöntemin sözdizimi şöyledir:

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

Burada y ve z isteğe bağlı bağımsız değişkenlerdir.

String maketrans () Parametreler

maketrans() yöntem 3 parametre alır:

  • x - Yalnızca bir bağımsız değişken sağlanırsa, bu bir sözlük olmalıdır.
    Sözlük, tek bir karakter dizisinden çevirisine kadar 1'e 1 eşleme VEYA bir Unicode numarası ('a' için 97) çevirisine kadar içermelidir.
  • y - İki bağımsız değişken iletilirse, eşit uzunlukta iki dize olmalıdır.
    İlk dizedeki her karakter, ikinci dizedeki karşılık gelen dizinin yerine geçer.
  • z - Üç bağımsız değişken iletilirse, üçüncü bağımsız değişkendeki her karakter Yok ile eşlenir.

String maketrans () 'dan dönüş değeri

maketrans()Yöntem, çevirme / değiştirme için bir Unicode bir sıra bir 1-to-1 haritalama ile bir dönüşüm tablosunu döndürür.

Örnek 1: Maketrans () içeren bir sözlük kullanan çeviri tablosu

 # 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))

Çıktı

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

Burada bir sözlük diktesi tanımlanmıştır. Sırasıyla 123, 456 ve 789'a a, b ve c karakterlerinin bir eşlemesini içerir.

maketrans() karakterin Unicode ordinalinin karşılık gelen çevirisiyle eşlemesini oluşturur.

Böylece, 97 ('a') '123', 98 'b' 456 ve 99 'c' ile 789 ile eşleştirilir. Bu, her iki sözlüğün çıktısından da gösterilebilir.

Ayrıca, sözlükte iki veya daha fazla karakter eşlenirse, bir istisna oluşturur.

Örnek 2: maketrans () ile iki dizenin kullanıldığı çeviri tablosu

 # 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))

Çıktı

 (97: 100, 98: 101, 99: 102) ValueError: ilk iki maketrans argümanı eşit uzunlukta olmalıdır 

İşte ilk, aynı uzunluktaki iki dizeleri abcve deftanımlanır. Ve ilgili çeviri oluşturulur.

Yalnızca ilk çeviriyi yazdırmak, firstString'deki her karakterin Unicode sıralı için secondString'deki aynı dizine alınmış karaktere 1'e 1 eşleme sağlar.

Bu durumda, 97 ('a') 100 ('d'), 98 ('b') ile 101 ('e') ve 99 ('c') ile 102 ('f') ile eşlenir.

Eşit olmayan uzunluktaki dizeler için bir çeviri tablosu oluşturmaya çalışmak ValueError, dizelerin eşit uzunlukta olması gerektiğini belirten bir istisna yaratır .

Örnek 3: Maketrans () ile çıkarılabilir dizgeli çeviri tablosu

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

Çıktı

 (97: Yok, 98: Yok, 99: 102, 100: Yok) 

Burada ilk olarak, firstString ve secondString arasındaki iki dizge arasındaki eşleme oluşturulur.

Daha sonra üçüncü bağımsız değişken thirdString, içindeki her karakterin eşlemesini sıfırlar ve Nonevar olmayan karakterler için yeni bir eşleme oluşturur.

Bu durumda, thirdString 97 ('a') ve 98 ('b') 'nin eşlemesini sıfırlar Noneve ayrıca eşlenen 100 (' d ') için yeni bir eşleme oluşturur None.

Ilginç makaleler...