Python String maketrans ()

Η μέθοδος string maketrans () επιστρέφει έναν πίνακα αντιστοίχισης για μετάφραση που μπορεί να χρησιμοποιηθεί για τη μετάφραση ().

Με απλά λόγια, η maketrans()μέθοδος είναι μια στατική μέθοδος που δημιουργεί μια αντιστοίχιση ενός χαρακτήρα ενός χαρακτήρα στη μετάφραση / αντικατάστασή του.

Δημιουργεί μια αναπαράσταση Unicode κάθε χαρακτήρα για μετάφραση.

Αυτή η χαρτογράφηση μετάφρασης χρησιμοποιείται στη συνέχεια για την αντικατάσταση ενός χαρακτήρα στον αντιστοιχισμένο χαρακτήρα του όταν χρησιμοποιείται στη μέθοδο μετάφρασης ().

Η σύνταξη της maketrans()μεθόδου είναι:

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

Εδώ, τα y και z είναι προαιρετικά ορίσματα.

Συμβολοσειρές maketrans () Παράμετροι

maketrans() Η μέθοδος διαρκεί 3 παραμέτρους:

  • x - Εάν παρέχεται μόνο ένα όρισμα, πρέπει να είναι λεξικό.
    Το λεξικό πρέπει να περιέχει αντιστοίχιση 1 προς 1 από μια συμβολοσειρά ενός χαρακτήρα στη μετάφρασή του Ή έναν αριθμό Unicode (97 για «a») στη μετάφρασή του.
  • y - Εάν περάσουν δύο ορίσματα, πρέπει να είναι δύο συμβολοσειρές με ίσο μήκος.
    Κάθε χαρακτήρας στην πρώτη συμβολοσειρά αντικαθιστά τον αντίστοιχο δείκτη του στη δεύτερη συμβολοσειρά.
  • z - Εάν περάσουν τρία ορίσματα, κάθε χαρακτήρας στο τρίτο όρισμα αντιστοιχίζεται σε κανένα.

Τιμή επιστροφής από String maketrans ()

Η maketrans()μέθοδος επιστρέφει έναν πίνακα μετάφρασης με αντιστοίχιση 1 προς 1 ενός κανονικού Unicode στη μετάφραση / αντικατάστασή του.

Παράδειγμα 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') 

Εδώ, ορίζεται ένα λεξικό υπαγόρευσης. Περιέχει αντιστοίχιση των χαρακτήρων a, b και c έως 123, 456 και 789 αντίστοιχα.

maketrans() δημιουργεί μια χαρτογράφηση του Unicode του χαρακτήρα με την αντίστοιχη μετάφρασή του.

Έτσι, το 97 ('a') αντιστοιχίζεται σε '123', 98 'b' έως 456 και 99 'c' έως 789. Αυτό μπορεί να αποδειχθεί από την έξοδο και των δύο λεξικών.

Επίσης, εάν δύο ή περισσότεροι χαρακτήρες χαρτογραφούνται στο λεξικό, δημιουργεί μια εξαίρεση.

Παράδειγμα 2: Πίνακας μετάφρασης με δύο χορδές με maketrans ()

 # 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) ValueError: τα δύο πρώτα επιχειρήματα maketrans πρέπει να έχουν ίσο μήκος 

Εδώ πρώτα, δύο συμβολοσειρές ίσου μήκους abcκαι defορίζονται. Και δημιουργείται η αντίστοιχη μετάφραση.

Η εκτύπωση μόνο της πρώτης μετάφρασης σάς δίνει μια αντιστοίχιση 1 προς 1 στην κανονική Unicode κάθε χαρακτήρα στο firstString στον ίδιο ευρετηριασμένο χαρακτήρα στο secondString.

Σε αυτήν την περίπτωση, το 97 ('a') αντιστοιχίζεται σε 100 ('d'), 98 ('b') έως 101 ('e') και 99 ('c') έως 102 ('f').

Η προσπάθεια δημιουργίας πίνακα μετάφρασης για άνισες συμβολοσειρές μήκους δημιουργεί μια ValueErrorεξαίρεση που δείχνει ότι οι συμβολοσειρές πρέπει να έχουν ίσο μήκος.

Παράδειγμα 3: Μεταφραστικός πίνακας με αφαιρούμενη συμβολοσειρά με maketrans ()

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

Παραγωγή

 (97: Κανένα, 98: Κανένα, 99: 102, 100: Κανένα) 

Εδώ, πρώτα, δημιουργείται η αντιστοίχιση μεταξύ των δύο χορδών FirstString και SecondString.

Στη συνέχεια, το τρίτο όρισμα ThirdString επαναφέρει τη χαρτογράφηση κάθε χαρακτήρα σε αυτό Noneκαι δημιουργεί επίσης μια νέα αντιστοίχιση για ανύπαρκτους χαρακτήρες.

Σε αυτήν την περίπτωση, το ThirdString επαναφέρει τη χαρτογράφηση των 97 ('a') και 98 ('b') σε None, και δημιουργεί επίσης μια νέα αντιστοίχιση για 100 ('d') αντιστοιχισμένη στο None.

ενδιαφέροντα άρθρα...