bytes.maketrans
Built-in Data Structures

Meaning

bytes.maketrans creates a 256‑byte translation table that maps each byte from a source bytes object to a corresponding byte in a target bytes object (and optionally specifies bytes to delete). It solves the pain point of performing fast, bulk byte‑wise substitution or removal without writing explicit loops. You reach for it whenever you need to translate or filter binary data such as network packets or binary logs.

Primary Function

Bytes manipulation

Communicative Purpose

Enables building a translation table for efficient byte substitution or removal in binary data.

Pattern

bytes.maketrans(from_bytes, to_bytes)

Core Structure

bytes.maketrans(..., ...)

Função primária

Bytes manipulation

Propósito comunicativo

Enables building a translation table for efficient byte substitution or removal in binary data.

Situações de gatilho

Network protocol parsing: remapping deprecated opcode bytes; Binary log processing: stripping unwanted control bytes from log entries; File format conversion: replacing legacy file signature bytes with new ones.

Contextos

Python standard library, network protocol parsers, binary file processing, data transformation pipelines.

Padrão

bytes.maketrans(from_bytes, to_bytes)

Estrutura central

bytes.maketrans(..., ...)

Slots de substituição

from_bytes: bytes-like object of length N; to_bytes: bytes-like object of same length; (optional) delete_bytes: bytes-like object of bytes to remove

Colocados típicos

  • bytes.translate
  • bytes.replace
  • str.maketrans
  • codecs.encode

Substituições comuns

  • Using a loop with bytes.replace or bytearray modifications
  • using str.maketrans for Unicode strings.

Erros comuns

Passing strings instead of bytes, mismatched lengths of from/to arguments, forgetting that the result is a 256‑byte translation table, using the table with str.translate.

Similar / contraste

str.maketrans (for Unicode strings), bytes.replace (simple substitution without a table), memoryview casting for in‑place changes.

Interferências

Coming from C: may expect a direct map function; coming from JavaScript: may think replace works similarly on binary data.

Família do chunk

  • bytes.translate
  • bytes.replace
  • str.maketrans
  • str.translate

Nuance

The translation table is always 256 bytes long; if the delete argument is supplied, those bytes are removed. If from and to are different lengths, ValueError is raised.

Efeito pragmático

Allows O(n) byte substitution with a single C‑level loop, avoiding Python‑level loops and improving performance.

Dica de memória

Think of bytes.maketrans as a custom cipher wheel that rewrites each byte before the data is processed.

Nota

The translation table returned by bytes.maketrans is always a 256‑byte table; if a delete argument is supplied those bytes are removed during translation. Supplying from_bytes and to_bytes of different lengths raises ValueError. The table can be used only with bytes.translate (or bytearray.translate), not with str.translate.

Upgrade path

Using bytes.translate with a custom translation table built via bytearray or memoryview for more complex mappings.

Frequência: MediumFormulaicidade: Semi-fixedTipo de construção: method call idiom (bytes.maketrans)Prioridade de aquisição: Recognition firstPrioridade de output: BothTag de espaçamento: Medium-term

Log in to save chunks.