На этом шаге мы рассмотрим особенности этого класса.
Тип bytearray представляет собой изменяемую последовательность целых чисел в диапазоне 0 < x < 255.
См. документацию Python "bytes": https://docs.python.org/3/library/stdtypes.html#bytearray.
Они тесно связаны с объектами bytes, при этом главное их отличие в том, что объекты bytearray можно свободно изменять - вы можете переписывать элементы, удалять существующие элементы или добавлять новые. Объект bytearray будет соответствующим образом расти и сжиматься.
Объекты bytearray могут быть преобразованы обратно в неизменяемые объекты bytes, но это влечет за собой копирование абсолютно всех хранящихся в них данных - весьма медленная операция, занимающая O(n) времени.
>>> arr = bytearray((0, 1, 2, 3)) >>> arr[1] 1 # Метод repr для bytearray: >>> arr bytearray(b'\x00\x01\x02\x03') # Байтовые массивы bytearray изменяемы: >>> arr[1] = 23 >>> arr bytearray(b'\x00\x17\x02\x03') >>> arr[1] 23 # Байтовые массивы bytearray могут расти и сжиматься в размере: >>> del arr[1] >>> arr bytearray(b'\x00\x02\x03') >>> arr.append(42) >>> arr bytearray(b'\x00\x02\x03*') # Байтовые массивы bytearray могут содержать только "байты" # (целые числа в диапазоне 0 <= x <= 255) >>> arr[1] = 'привет' Traceback (most recent call last): . . . . TypeError: 'str' object cannot be interpreted as an integer >>> arr[1] = 300 Traceback (most recent call last): . . . . ValueError: byte must be in range(0, 256) # bytearrays может быть преобразован в байтовые объекты: # (Это скопирует данные) >>> bytes(arr) b'\x00\x02\x03*'
На следующем шаге мы подитожим изученный материал.