bytearray()
Функция bytearray() создаёт изменяемую последовательность байтов
со значениями в диапазоне 0..255. В отличие от bytes, элементы
можно менять, добавлять и удалять. Удобно для буферов, накопления
данных и побайтовой обработки.
Сигнатура
bytearray()
bytearray(int)
bytearray(iterable_of_ints)
bytearray(string, encoding[, errors])
bytearray(bytes_or_buffer)
Возвращает: объект bytearray.
Примеры
Создание разными способами:
a = bytearray()
b = bytearray(5)
c = bytearray([72, 101, 108, 108, 111])
d = bytearray("Привет", "utf-8")
print(a, b, c, d, sep="\n")
bytearray(b'')
bytearray(b'\x00\x00\x00\x00\x00')
bytearray(b'Hello')
bytearray(b'\xd0\x9f\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82')
Изменение содержимого:
buf = bytearray(b"Hello")
buf[0] = ord("J")
buf.append(ord("!"))
print(buf)
bytearray(b'Jello!')
Накопление данных в буфере:
packet = bytearray()
packet.extend(b"\xAA\x55")
packet.append(0x10)
packet += b"DATA"
print(packet)
print(len(packet))
bytearray(b'\xaaU\x10DATA')
7
Декодирование обратно в строку:
ba = bytearray("AlashEd", "utf-8")
print(ba.decode("utf-8"))
AlashEd
XOR двух буферов:
key = bytearray([0x5A] * 5)
data = bytearray(b"Hello")
enc = bytearray(d ^ k for d, k in zip(data, key))
print(enc)
dec = bytearray(e ^ k for e, k in zip(enc, key))
print(dec.decode())
bytearray(b'\x12?6657')
Hello
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.