← retour aux snippets

memoryview: manipuler des bytes sans copie

Modifier des buffers en place et découper sans allouer.

objectif

Modifier des buffers en place et découper sans allouer.

code minimal

b = bytearray(b"abc")
mv = memoryview(b)
mv[0] = ord("A")
print(bytes(b) == b"Abc")  # attendu: True

utilisation

data = bytearray(b"0123456789")
v = memoryview(data)[2:6]
v[:] = b"ABCD"
print(bytes(data[2:6]) == b"ABCD")

variante(s) utile(s)

import array
a = array.array("I", [1,2,3])
mv = memoryview(a)
print(mv.format == "I")

notes

  • memoryview évite des copies coûteuses pour des sous-séquences.
  • Fonctionne avec bytearray, array, numpy (via buffer), etc.