Python String maketrans ()

Il metodo string maketrans () restituisce una tabella di mappatura per la traduzione utilizzabile per il metodo translate ().

In termini semplici, il maketrans()metodo è un metodo statico che crea una mappatura uno a uno di un carattere alla sua traduzione / sostituzione.

Crea una rappresentazione Unicode di ogni carattere per la traduzione.

Questa mappatura di traduzione viene quindi utilizzata per sostituire un carattere con il suo carattere mappato quando viene utilizzata nel metodo translate ().

La sintassi del maketrans()metodo è:

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

Qui, y e z sono argomenti opzionali.

Parametri String maketrans ()

maketrans() il metodo accetta 3 parametri:

  • x - Se viene fornito un solo argomento, deve essere un dizionario.
    Il dizionario dovrebbe contenere una mappatura 1 a 1 da una singola stringa di caratteri alla sua traduzione OPPURE un numero Unicode (97 per 'a') alla sua traduzione.
  • y - Se vengono passati due argomenti, devono essere due stringhe di uguale lunghezza.
    Ogni carattere nella prima stringa sostituisce il suo indice corrispondente nella seconda stringa.
  • z - Se vengono passati tre argomenti, ogni carattere nel terzo argomento viene mappato su Nessuno.

Valore restituito da String maketrans ()

Il maketrans()metodo restituisce una tabella di conversione con una mappatura 1-a-1 di un ordinale Unicode alla sua traduzione / sostituzione.

Esempio 1: tabella di traduzione utilizzando un dizionario con 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))

Produzione

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

Qui viene definito un dict del dizionario. Contiene una mappatura dei caratteri a, be c rispettivamente a 123, 456 e 789.

maketrans() crea una mappatura dell'ordinale Unicode del carattere alla sua traduzione corrispondente.

Quindi, 97 ('a') è mappato a '123', 98 'b' a 456 e 99 'c' a 789. Ciò può essere dimostrato dall'output di entrambi i dizionari.

Inoltre, se due o più caratteri sono mappati nel dizionario, solleva un'eccezione.

Esempio 2: tabella di traduzione che utilizza due stringhe con 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))

Produzione

 (97: 100, 98: 101, 99: 102) ValueError: i primi due argomenti maketrans devono avere la stessa lunghezza 

In primo luogo, vengono definite due stringhe di uguale lunghezza abce def. E viene creata la traduzione corrispondente.

La stampa solo della prima traduzione fornisce una mappatura 1 a 1 all'ordinale Unicode di ogni carattere in firstString allo stesso carattere indicizzato su secondString.

In questo caso, 97 ('a') viene mappato a 100 ('d'), 98 ('b') a 101 ('e') e 99 ('c') a 102 ('f').

Il tentativo di creare una tabella di traduzione per stringhe di lunghezza diversa genera ValueErrorun'eccezione che indica che le stringhe devono avere la stessa lunghezza.

Esempio 3: tabella traslazionale con stringa rimovibile con maketrans ()

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

Produzione

 (97: Nessuno, 98: Nessuno, 99: 102, 100: Nessuno) 

In primo luogo, viene creata la mappatura tra le due stringhe firstString e secondString.

Quindi, il terzo argomento thirdString reimposta la mappatura di ogni carattere in essa contenuta Nonee crea anche una nuova mappatura per i caratteri inesistenti.

In questo caso, thirdString reimposta la mappatura di 97 ('a') e 98 ('b') Nonee crea anche una nuova mappatura per 100 ('d') mappata a None.

Articoli interessanti...