पायथन स्ट्रिंग maketrans ()

स्ट्रिंग maketrans () विधि अनुवाद के लिए प्रयोग करने योग्य अनुवाद के लिए मानचित्रण तालिका लौटाती है () विधि।

सरल शब्दों में, maketrans()विधि एक स्थिर विधि है जो चरित्र के एक से एक मानचित्रण को उसके अनुवाद / प्रतिस्थापन में बनाती है।

यह अनुवाद के लिए प्रत्येक वर्ण का एक यूनिकोड प्रतिनिधित्व बनाता है।

इस अनुवाद मैपिंग का उपयोग तब किसी वर्ण को उसके मैप किए गए वर्ण को बदलने के लिए किया जाता है जब अनुवाद () विधि में उपयोग किया जाता है।

maketrans()विधि का सिंटैक्स है:

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

यहां, y और z वैकल्पिक तर्क हैं।

स्ट्रिंग maketrans () पैरामीटर

maketrans() विधि 3 पैरामीटर लेता है:

  • x - यदि केवल एक तर्क की आपूर्ति की जाती है, तो यह एक शब्दकोश होना चाहिए।
    शब्दकोश में इसके अनुवाद के लिए एकल वर्ण स्ट्रिंग से 1-से -1 मानचित्रण होना चाहिए या इसके अनुवाद के लिए एक यूनिकोड संख्या (97 'के लिए') होनी चाहिए।
  • y - यदि दो तर्क पारित किए जाते हैं, तो समान लंबाई के साथ दो तार होने चाहिए।
    पहले स्ट्रिंग में प्रत्येक वर्ण दूसरी स्ट्रिंग में इसके संबंधित सूचकांक के लिए एक प्रतिस्थापन है।
  • z - यदि तीन तर्क पारित किए जाते हैं, तो तीसरे तर्क में प्रत्येक वर्ण को किसी के साथ मैप किया जाता है।

स्ट्रिंग maketrans से वापसी मान ()

maketrans()विधि अपने अनुवाद / प्रतिस्थापन के लिए एक यूनिकोड क्रमसूचक के 1 से 1 मानचित्रण के साथ एक अनुवाद तालिका देता है।

उदाहरण 1: अनुवाद तालिका का उपयोग maketrans () के साथ एक शब्दकोश का उपयोग करके किया जाता है

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

आउटपुट

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

यहाँ, एक डिक्शनरी को डिफाइन किया गया है। इसमें क्रमश: ए, बी और सी से लेकर 123, 456 और 789 अक्षरों की मैपिंग शामिल है।

maketrans() इसके संबंधित अनुवाद में चरित्र के यूनिकोड क्रम का मानचित्रण बनाता है।

तो, 97 ('ए') को '123', 98 'b' से 456 और 99 'c' से 789 तक मैप किया जाता है। यह दोनों शब्दकोशों के आउटपुट से प्रदर्शित किया जा सकता है।

इसके अलावा, अगर दो या दो से अधिक अक्षर शब्दकोश में मैप किए जाते हैं, तो यह एक अपवाद को जन्म देता है।

उदाहरण 2: अनुवाद तालिका का उपयोग दो रेखाओं के साथ किया जाता है ()

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

आउटपुट

 (97: 100, 98: 101, 99: 102) मान: पहले दो maketrans तर्क की लंबाई समान होनी चाहिए 

यहां पहले, समान लंबाई के दो तार abcऔर defपरिभाषित किए गए हैं। और संबंधित अनुवाद बनाया जाता है।

केवल पहले अनुवाद को छापने से आपको प्रत्येक चरित्र के यूनिकोड अध्यादेश को 1-टू -1 मैपिंग मिलती है, जो फर्स्टस्ट्रीमिंग में उसी इंडेक्स किए गए चरित्र को दूसरी स्ट्रींग पर देता है।

इस स्थिति में, 97 ('a') को 100 ('d'), 98 ('b') से 101 ('e') और 99 ('c') से 102 ('f') तक मैप किया जाता है।

असमान लंबाई के तार के लिए अनुवाद तालिका बनाने की कोशिश करना एक ValueErrorअपवाद को दर्शाता है जो बताता है कि तार की लंबाई समान होनी चाहिए।

उदाहरण 3: ट्रांसलेटर टेबल रिमूवेबल स्ट्रिंग विथ मेकट्रांस ()

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

आउटपुट

 (97: कोई नहीं, 98: कोई नहीं, 99: 102, 100: कोई नहीं) 

यहाँ, पहले, दो स्ट्रिंग्स के बीच की मैपिंग पहले स्ट्रींग और दूसरी स्ट्रींग बनाई जाती है।

फिर, तीसरा तर्क थर्डस्ट्रिंग इसमें प्रत्येक वर्ण के मानचित्रण को रीसेट करता है Noneऔर गैर-मौजूद वर्णों के लिए एक नया मानचित्रण भी बनाता है।

इस स्थिति में, थर्डस्ट्रिंग 97 ('a') और 98 ('b') की मैपिंग को रीसेट करता है None, और 100 ('d') मैपिंग के लिए एक नया मैपिंग भी बनाता है None

दिलचस्प लेख...