पायथन स्ट्रिंग मेकट्रांस ()
मेकट्रांस () विधि अनुवाद () विधि के लिए प्रयोग करने योग्य अनुवाद के लिए मानचित्रण तालिका लौटाती है। यह एक स्थिर विधि है जो एक चरित्र के अनुवाद/प्रतिस्थापन के लिए एक से एक मैपिंग बनाती है। यह विधि अनुवाद के लिए प्रत्येक वर्ण का एक यूनिकोड प्रतिनिधित्व बनाती है।
मेकट्रांस () विधि का सिंटैक्स है -
string.maketrans(x[, y[, z]]) y and z are optional arguments.
स्ट्रिंग मेकट्रांस() पैरामीटर
मेकट्रांस () विधि में 3 पैरामीटर हैं।
x - इस मामले में यदि केवल एक तर्क की आपूर्ति की जाती है, तो यह एक शब्दकोश होना चाहिए और शब्दकोश में एक एकल वर्ण स्ट्रिंग से इसके अनुवाद के लिए 1-टू-1 मैपिंग या इसके अनुवाद के लिए एक यूनिकोड संख्या ('ए' के लिए 97) होनी चाहिए। ।
y - इस मामले में यदि दो तर्क पारित किए जाते हैं, तो यह समान लंबाई के साथ दो तार होने चाहिए और पहली स्ट्रिंग में प्रत्येक वर्ण दूसरी स्ट्रिंग में संबंधित अनुक्रमणिका के प्रतिस्थापन है।
z - इस मामले में यदि तीन तर्क पारित किए जाते हैं, तो तीसरे तर्क में प्रत्येक वर्ण को किसी से मैप नहीं किया जाता है।
स्ट्रिंग मेकट्रांस से वापसी मान ()
यह विधि एक अनुवाद तालिका को उसके अनुवाद/प्रतिस्थापन के लिए एक यूनिकोड ऑर्डिनल की 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 एक शब्दकोष है और इसमें क्रमशः a, b और c से 123, 456 और 789 वर्णों का मानचित्रण होता है। मेकट्रांस () चरित्र के यूनिकोड ऑर्डिनल की मैपिंग को उसके संबंधित अनुवाद के लिए बनाता है। तो, परिणाम 97 ('ए') को '123', 98 'बी' से 456 और 99 'सी' से 789 पर मैप किया गया है।
उदाहरण2
मेकट्रांस के साथ दो स्ट्रिंग्स का उपयोग करके अनुवाद तालिका ()
उदाहरण
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 ('ए') को 100 ('डी'), 98 ('बी') से 101 ('ई') और 99 ('सी') से 102 ('एफ') में मैप किया गया है और कोशिश कर रहा है असमान लंबाई वाली स्ट्रिंग्स के लिए अनुवाद तालिका बनाने के लिए एक ValueError अपवाद उत्पन्न होता है जो दर्शाता है कि स्ट्रिंग्स की लंबाई समान होनी चाहिए।
अनुवाद () . हम जानते हैं कि एक अनुवाद तालिका वर्णों को अन्य वर्णों के साथ मैप करती है। स्ट्रिंग्स में कई कैरेक्टर रिप्लेसमेंट करने के लिए हम पायथन में ट्रांसलेशन () मेथड का इस्तेमाल करते हैं। सबसे पहले हम 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