কম্পিউটার

Python maketrans() এবং translate() ফাংশন


পাইথন স্ট্রিং maketrans()

maketrans() পদ্ধতি অনুবাদের জন্য একটি ম্যাপিং টেবিল প্রদান করে যা translate() পদ্ধতির জন্য ব্যবহারযোগ্য। এটি একটি স্ট্যাটিক পদ্ধতি যা একটি অক্ষরের অনুবাদ/প্রতিস্থাপনের জন্য এক থেকে এক ম্যাপিং তৈরি করে। এই পদ্ধতিটি অনুবাদের জন্য প্রতিটি অক্ষরের একটি ইউনিকোড উপস্থাপনা তৈরি করে।

maketrans() পদ্ধতির সিনট্যাক্স হল −

string.maketrans(x[, y[, z]])
y and z are optional arguments.

স্ট্রিং maketrans() পরামিতি

maketrans() পদ্ধতিতে 3টি প্যারামিটার রয়েছে।

x - এই ক্ষেত্রে যদি শুধুমাত্র একটি যুক্তি সরবরাহ করা হয়, এটি অবশ্যই একটি অভিধান হতে হবে এবং অভিধানে একটি একক অক্ষর স্ট্রিং থেকে এর অনুবাদে 1-থেকে-1 ম্যাপিং থাকা উচিত বা এর অনুবাদে একটি ইউনিকোড নম্বর ('a'-এর জন্য 97) .

y - এই ক্ষেত্রে যদি দুটি আর্গুমেন্ট পাস করা হয়, তবে এটি অবশ্যই সমান দৈর্ঘ্যের দুটি স্ট্রিং হতে হবে এবং প্রথম স্ট্রিংয়ের প্রতিটি অক্ষর দ্বিতীয় স্ট্রিং-এর সংশ্লিষ্ট সূচকের প্রতিস্থাপন।

z - এই ক্ষেত্রে যদি তিনটি আর্গুমেন্ট পাস করা হয়, তৃতীয় আর্গুমেন্টের প্রতিটি অক্ষর কোনোটিতে ম্যাপ করা হয় না৷

স্ট্রিং maketrans() থেকে রিটার্ন মান

এই পদ্ধতিটি একটি ইউনিকোড অর্ডিনালের 1-থেকে-1 ম্যাপিং সহ একটি অনুবাদ টেবিল তার অনুবাদ/প্রতিস্থাপনে ফিরিয়ে দেয়।

উদাহরণ1

maketrans()

সহ একটি অভিধান ব্যবহার করে অনুবাদ টেবিল

উদাহরণ কোড

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

আউটপুট

{97: '123', 98: '456', 99: '789'}
{97: '123', 98: '456', 99: '789'}

ব্যাখ্যা − এই উদাহরণে, dict হল একটি অভিধান এবং এতে যথাক্রমে 123, 456 এবং 789 অক্ষরগুলির একটি ম্যাপিং রয়েছে। মেকট্রান্স() অক্ষরের ইউনিকোড অর্ডিন্যাল এর সংশ্লিষ্ট অনুবাদের সাথে একটি ম্যাপিং তৈরি করে। সুতরাং, ফলাফল হল 97 ('a') ম্যাপ করা হয়েছে '123', 98 'b' 456 এবং 99 'c'-এ 789।

উদাহরণ2

maketrans()

এর সাথে দুটি স্ট্রিং ব্যবহার করে অনুবাদ টেবিল

উদাহরণ

my_string1 = "abc"
my_string2 = "def"
string = "abc"
print(string.maketrans(my_string1, my_string2))
# Example dictionary
my_string1 = "abc"
my_string2 = "defghi"
string = "abc"
print(string.maketrans(my_string1, my_string2))

আউটপুট

{97: 100, 98: 101, 99: 102}
ValueError: the first two maketrans arguments must have equal length

ব্যাখ্যা − এই উদাহরণে সমান দৈর্ঘ্যের দুটি স্ট্রিং "abc" এবং "def" সংজ্ঞায়িত করা হয়েছে। এবং সংশ্লিষ্ট অনুবাদ তৈরি করা হয় এবং শুধুমাত্র প্রথম অনুবাদটি মুদ্রণ করলে আপনি my_string1-এ প্রতিটি অক্ষরের ইউনিকোড অর্ডিন্যালে my_string2-এ একই সূচীকৃত অক্ষরে 1-থেকে-1 ম্যাপিং পাবেন।

কিন্তু এই ক্ষেত্রে, 97 ('a') 100 ('d'), 98 ('b') থেকে 101 ('e') এবং 99 ('c') থেকে 102 ('f') এ ম্যাপ করা হয়েছে এবং চেষ্টা করা হচ্ছে অসম দৈর্ঘ্যের স্ট্রিংগুলির জন্য একটি অনুবাদ টেবিল তৈরি করতে একটি মান ত্রুটি ব্যতিক্রম উত্থাপন করে যা নির্দেশ করে যে স্ট্রিংগুলির সমান দৈর্ঘ্য থাকতে হবে৷

অনুবাদ() . আমরা জানি যে একটি অনুবাদ টেবিল অক্ষরকে অন্য অক্ষরের সাথে মানচিত্র করে। স্ট্রিং-এ অনেক অক্ষর প্রতিস্থাপন করার জন্য আমরা পাইথনে translate() পদ্ধতি ব্যবহার করি। প্রথমে আমরা maketrans() দিয়ে একটি অনুবাদ অভিধান তৈরি করি এবং এটি অনুবাদ করতে পাস করি।

পাইথন প্রোগ্রাম যা মেকট্রান্স, অনুবাদ ব্যবহার করে

#Python program that uses maketrans, translate
dict = str.maketrans("abc", "def")
print(dict)
# Translate this value.
value = "aabbcc"
result = value.translate(dict)
print(result)

আউটপুট

{97: 100, 98: 101, 99: 102}
ddeeff

পাইথন প্রোগ্রাম যা উপেক্ষা করে, অক্ষর সরিয়ে দেয়

# Create translation table.
table = str.maketrans("78", "12", "9")
# Translate this string.
input = "123456789"
result = input.translate(table)
# Write results.
print(input)
print(result)

আউটপুট

123456789
12345612

পাইথন প্রোগ্রাম যা rot13 অনুবাদ প্রয়োগ করে

#Create translation table.
trans = str.maketrans("abcdefghijklmnopqrstuvwxyz","nopqrstuvwxyzabcdefghijklm")
# Apply rot13 translation.
print("gandalf".translate(trans))
print("gandalf".translate(trans).translate(trans))

আউটপুট

tnaqnys
gandalf

  1. পাইথনে getattr() এবং setattr() ফাংশনের মধ্যে পার্থক্য কী?

  2. পাইথনে raw_input() এবং input() ফাংশনের মধ্যে পার্থক্য কী?

  3. একটি প্রদত্ত অভিধান অনুযায়ী একটি পাইথন স্ট্রিং কিভাবে অনুবাদ করবেন?

  4. কেন এবং কিভাবে পাইথন ফাংশন হ্যাশেবল?