maketrans() ফাংশন
str.maketrans() একটি অনুবাদ টেবিল (translation table) তৈরি করে যা translate() মেথডে ব্যবহার হয়। এটি ক্যারেক্টার-টু-ক্যারেক্টার ম্যাপিং তৈরি করে।
সিনট্যাক্স
str.maketrans(x[, y[, z]])
y এবং z অপশনাল।
প্যারামিটার ও ব্যবহার
| প্যারামিটার | বিবরণ |
|---|---|
| x (একটি আর্গুমেন্ট) | ডিকশনারি হতে হবে। ক্যারেক্টার বা ইউনিকোড নম্বর থেকে অনুবাদে ম্যাপিং। |
| x, y (দুই আর্গুমেন্ট) | দুটি সমান দৈর্ঘ্যের স্ট্রিং। প্রথম স্ট্রিংয়ের প্রতিটি ক্যারেক্টার দ্বিতীয় স্ট্রিংয়ের সম্পর্কিত ক্যারেক্টরে ম্যাপ হবে। |
| x, y, z (তিন আর্গুমেন্ট) | z-এ থাকা ক্যারেক্টারগুলো ডিলিট হবে (None-এ ম্যাপ)। |
উদাহরণ ১: ডিকশনারি দিয়ে ম্যাপিং
# ক্যারেক্টার ম্যাপিং
dict1 = {"a": "123", "b": "456", "c": "789"}
my_string = "abc"
print(my_string.maketrans(dict1))
# আউটপুট: {97: '123', 98: '456', 99: '789'} (97='a', 98='b', 99='c' এর ইউনিকোড)
# ইউনিকোড নম্বর দিয়ে ম্যাপিং
dict2 = {97: "123", 98: "456", 99: "789"}
print(my_string.maketrans(dict2))
# একই আউটপুট
উদাহরণ ২: দুটি স্ট্রিং দিয়ে ম্যাপিং
my_string1 = "abc"
my_string2 = "def"
string = "abc"
print(string.maketrans(my_string1, my_string2))
# আউটপুট: {97: 100, 98: 101, 99: 102} (a->d, b->e, c->f)
# অসমান দৈর্ঘ্যের স্ট্রিং দিলে এরর
my_string1 = "abc"
my_string2 = "defghi"
print(string.maketrans(my_string1, my_string2))
# ValueError: the first two maketrans arguments must have equal length
translate() ফাংশন
translate() মেথডে maketrans()-এর তৈরি টেবিল পাস করে ক্যারেক্টার রিপ্লেস করা হয়।
উদাহরণ: সাধারণ রিপ্লেসমেন্ট
# অনুবাদ টেবিল তৈরি
table = str.maketrans("abc", "def")
print(table) # {97: 100, 98: 101, 99: 102}
# প্রয়োগ
value = "aabbcc"
result = value.translate(table)
print(result) # ddeeff
উদাহরণ: ক্যারেক্টার মুছে ফেলা (তৃতীয় আর্গুমেন্ট)
# '7'->'1', '8'->'2', '9'->ডিলিট
table = str.maketrans("78", "12", "9")
input_str = "123456789"
result = input_str.translate(table)
print(input_str) # 123456789
print(result) # 12345612 (৯ গেল, ৭→১, ৮→২)
উদাহরণ: ROT13 এনক্রিপশন
# ROT13 টেবিল: a-z -> n-za-m
trans = str.maketrans(
"abcdefghijklmnopqrstuvwxyz",
"nopqrstuvwxyzabcdefghijklm"
)
print("gandalf".translate(trans)) # tnaqnys
print("gandalf".translate(trans).translate(trans)) # gandalf (দুইবার করলে ফিরে আসে)
সারসংক্ষেপ
maketrans()— ম্যাপিং টেবিল বানায়।translate()— টেবিল অনুযায়ী ক্যারেক্টার বদলে/মুছে দেয়।- দ্রুত ও কার্যকর স্ট্রিং ম্যানিপুলেশনের জন্য আদর্শ।