В Python оба типа bytes и bytearray представляют последовательности целых чисел в диапазоне 0–255, используемые для работы с двоичными данными. Ключевое различие между ними — это изменяемость.
bytes — неизменяемая последовательность двоичных данныхtuple целых чиселb = bytes([72, 101, 108, 108, 111])
b[0] = 99 # Raises TypeError: 'bytes' object does not support item assignment
bytearray — изменяемая последовательность двоичных данныхlist целых чиселba = bytearray([72, 101, 108, 108, 111])
ba[0] = 99 # Разрешено — модифицирует первый байт
bytes для фиксированных двоичных данных — например, сетевых пакетов, содержимого файлов или криптографических хешейbytearray когда собираешь или модифицируешь двоичные буферы — например, при формировании сообщений протокола или поэтапной обработке потоковbytes неизменяема; bytearray изменяемаbytes может быть немного быстрее благодаря оптимизациям неизменяемостиbytes хешируема и может использоваться как ключ словаря; bytearray — нетТип bytes хешируется и может использоваться как ключ словаря, в то время как bytearray нельзя использовать как ключ словаря, потому что он изменяемый.
Новый — ещё не проверен сообществом
Вы