Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में maketrans() और translate() फ़ंक्शन


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

maketrans() मेथड अनुवाद के लिए एक मैपिंग टेबल लौटाता है जिसका उपयोग translate() मेथड के लिए किया जा सकता है। यह एक स्टैटिक मेथड है जो एक वर्ण से उसके अनुवाद/प्रतिस्थापन का एक-से-एक मैपिंग बनाता है। यह मेथड अनुवाद के लिए प्रत्येक वर्ण का यूनिकोड प्रतिनिधित्व बनाता है।

maketrans() मेथड का सिंटैक्स है -

string.maketrans(x[, y[, z]]) y और z वैकल्पिक तर्क हैं।

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

maketrans() मेथड के 3 पैरामीटर्स हैं।

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

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

यह मेथड एक अनुवाद टेबल लौटाता है जिसमें यूनिकोड ऑर्डिनल से उसके अनुवाद/प्रतिस्थापन तक 1-से-1 मैपिंग होती है।

उदाहरण 1

maketrans() के साथ डिक्शनरी का उपयोग करके अनुवाद टेबल

उदाहरण कोड

dict = {"a": "123", "b": "456", "c": "789"}
my_string = "abc"
print(my_string.maketrans(dict))
# उदाहरण डिक्शनरी
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 से है। maketrans() वर्ण के यूनिकोड ऑर्डिनल से उसके संबंधित अनुवाद का मैपिंग बनाता है। इसलिए, परिणाम 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))
# उदाहरण डिक्शनरी
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') और असमान लंबाई के स्ट्रिंग्स के लिए अनुवाद टेबल बनाने का प्रयास ValueError अपवाद उठाता है जो इंगित करता है कि स्ट्रिंग्स की लंबाई समान होनी चाहिए।

translate()। हम जानते हैं कि एक अनुवाद टेबल वर्णों को अन्य वर्णों से मैप करती है। हम स्ट्रिंग्स में कई वर्ण प्रतिस्थापन करने के लिए पायथन में translate() मेथड का उपयोग करते हैं। पहले हम maketrans() के साथ एक अनुवाद डिक्शनरी बनाते हैं और इसे translate में पास करते हैं।

maketrans, translate का उपयोग करने वाला पायथन प्रोग्राम

#Python program that uses maketrans, translate
dict = str.maketrans("abc", "def")
print(dict)
# इस मान का अनुवाद करें।
value = "aabbcc"
result = value.translate(dict)
print(result)

आउटपुट

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

वर्णों को अनदेखा/हटाने वाला पायथन प्रोग्राम

# अनुवाद टेबल बनाएं।
table = str.maketrans("78", "12", "9")
# इस स्ट्रिंग का अनुवाद करें।
input = "123456789"
result = input.translate(table)
# परिणाम लिखें।
print(input)
print(result)

आउटपुट

123456789
12345612

rot13 अनुवाद लागू करने वाला पायथन प्रोग्राम

# अनुवाद टेबल बनाएं।
trans = str.maketrans("abcdefghijklmnopqrstuvwxyz", "nopqrstuvwxyzabcdefghijklm")
# rot13 अनुवाद लागू करें।
print("gandalf".translate(trans))
print("gandalf".translate(trans).translate(trans))

आउटपुट

tnaqnys
gandalf

  1. - पायथन में raw_input() और input() फ़ंक्शन्स में क्या अंतर है?

    raw_input() फ़ंक्शन यूज़र को प्रॉम्प्ट प्रस्तुत करता है (वैकल्पिक आर्गुमेंट raw_input([arg])), यूज़र से इनपुट प्राप्त करता है और यूज़र द्वारा इनपुट किए गए डेटा को स्ट्रिंग में लौटाता है। उदाहरण के लिए, name = raw_input(What is your name? ) print Hello, %s. % name यह input() से भिन्न है जिसमें बाद व

  1. - पायथन में दी गई डिक्शनरी के अनुसार स्ट्रिंग को कैसे ट्रांसलेट करें?

    हम translate() मेथड का उपयोग कर सकते हैं जो स्ट्रिंग की एक कॉपी लौटाता है जिसमें सभी कैरेक्टर्स को टेबल का उपयोग करके ट्रांसलेट किया गया होता है (स्ट्रिंग मॉड्यूल में maketrans() फ़ंक्शन के साथ निर्मित), वैकल्पिक रूप से डिलीटकैर्स में पाए जाने वाले सभी कैरेक्टर्स को हटाते हुए। उदाहरण from string imp

  1. - पायथन फंक्शन्स हैशेबल क्यों और कैसे हैं?

    एक ऑब्जेक्ट को हैशेबल कहा जाता है यदि इसका एक हैश मान होता है जो इसके जीवनकाल के दौरान समान रहता है। इसमें __hash__() मेथड होता है और इसकी तुलना अन्य ऑब्जेक्ट्स से की जा सकती है। इसके लिए, इसे __eq__() या __cmp__() मेथड की आवश्यकता होती है। यदि हैशेबल ऑब्जेक्ट्स तुलना में समान हैं, तो उनका हैश मान स