Python maketrans() Metodu

Python String Static maketrans( x [ , y [ , z ] ] ) Metodu 3 parametre alır. 

Şu şekilde de belirtebiliriz ; maketrans( dize1,dize2,dize3) bu üç parametreyi de açıklayalım;

dize1 = değiştirilecek dize karakterleri belirtilir.

dize2= yeni belirlenen dize karakterleri belirtilir.

dize3=oluşan dize karakterlerinden çıkarılması gereken karakterler belirtilir.

     dize1 ve dize2 parametreleri birbirine eş sayıda olmalıdır ve sıralaması önemlidir.

 Örnek;


karakter1 = "sih"
  

karakter2 = "bez"
  

karakter3 = ""
  
 
hedefdize = "siyah"  #değiştirilecek hedef dize
  

yenidize = hedefdize.maketrans(karakter1, karakter2, karakter3) 
  

print ("String değiştirilmeden önce : ", end ="") 
print (hedefdize) 
  

print ("String değiştiridikten sonra : ", end ="") 
print (hedefdize.translate(yenidize)) 

#çıktı

String değiştirilmeden önce : siyah
String değiştiridikten sonra : beyaz

Yukarıdaki kod yapısında translate() metodunu da kullandık.

 

Başka bir örnek;

Kodu inceleyiniz...

sayilar = str.maketrans("12", "34", "9")


input = "123456789"
sonuc = input.translate(sayilar)

print(input)
print(sonuc)

#çıktı

123456789
34345678

Yukarıdaki maketrans() metodunun ilk parametresinde 1 den 9'a kadar olan sayıların  "12" sayıları, ikinci parametrede belirtilen"34" sayılarına dönüştürülmüştür.  Üçüncü parametrede "9" sayısı da sonuçtan çıkarılmıştır.

Başka kullanıma örnek;

Pythonda dict yapılarda da kullanılır 

dict = str.maketrans("abc", "def","g")
print(dict)

dize = "aaabbbcccggg"
sonuc = dize.translate(dict)
print(sonuc)

#çıktı

{97: 100, 98: 101, 99: 102, 103: None}
dddeeefff

 Yukarıdaki örnekte str.maketrans() metodu içinde ilk parametre olan "abc" karakterleri dict yapısı içerisinde key olarak, ikinci parametre olan "def" karakterleri value olarak karakterlerin ascii tablosundaki decimal değerleri ile eşleştirildi. Üçüncü parametrede eşleştirme yapılmadığı için "g" karakteri key olarak yazdırıldı fakat value (değeri) None oldu.

 

 Karakterlerin ascii tablosundaki decimal değerlerini ord() fonksiyonu ile python derleyicisinde yazdıralım;

print(ord("a"))
print(ord("b"))
print(ord("c"))
print(ord("d"))
print(ord("e"))
print(ord("f"))
print(ord("g"))

#çıktı

97
98
99
100
101
102
103

 ASCİİ Tablosunda decimal değerlerini de chr() fonksiyonu  ile karaktere aşağıdaki gibi dönüştürebiliriz.

print(chr(97))
print(chr(98))
print(chr(99))
print(chr(100))
print(chr(101))
print(chr(102))
print(chr(103))

#çıktı

a
b
c
d
e
f
g

 

 

 

 https://www.kenanay.com/

 

    

 

Comments powered by CComment