Тип данных bytearray Python

Тип данных bytearray является разновидностью типа bytes и поддерживает те же самые методы и операции. В отличие от типа bytes, тип bytearray допускает возможность непо­средственного изменения объекта и содержит дополнительные методы, позволяющие вы­полнять эти изменения.

Создать объект типа bytearray можно следующими способами:

С помощью функции bytearray([<Строка>, <Кодировка>[, <Обработка ошибок>]]). Если параметры не указаны, то возвращается пустой объект. Чтобы преобразовать строку в объект типа bytearray, необходимо передать минимум два первых параметра. Если строка указана только в первом параметре, то возбуждается исключение TypeError.

Например:

В третьем параметре могут быть указаны значения «strict»(при ошибке возбуждается исключение UnicodeEncodeError значение по умолчанию), «replace»(неизвестный символ заменяется символом вопроса) или «ignore»(неизвестные символы игнорируются).

Например:

Создать объект bytearray также можно с помощью функции bytearray(<Последовательность>), которая преобразует последовательность целых чисел от 0 до 255 в объект типа bytearray. Если число не попадает в диапазон, то возбуждается исключение ValueError.

Например:

Можно создать объект bytearray с помощью функции bytearray(<Число>), которая задает количество элементов в последовательности. Каждый элемент будет содержать нулевой символ:

Существует еще такая функция bytearray.fromhex(<Строка>). Строка в этом случае должна содержвать шестнадцатеричные значения символов:

Тип bytearray относится к изменяемым типам. Поэтому можно не только получить значение по индексу, но и изменить его(что не свойственно строкам):

При изменении значения важно помнить, что присваиваемое значение должно быть целым числом в диапазоне от 0 до 255. Чтобы получить число в предыдущем примере, мы создали объект типа bytes, а затем присвоили значение, расположенное по индексу 0 (b[0] = b»J»[0]). Можно, конечно, сразу указать код символа, но ведь держать все коды символов в памяти свойственно компьютеру, а не человеку.

Для изменения объекта можно также использовать следующие методы:

append(<Число>) — добавляет один элемент в конец объекта. Метод изменяет текущий объект и нечего не возвращает. Например:

extend(<Последовательность>) — добавляет элементы последовательности в конец объекта. Метод изменяет текущий объект и ничего не возвращает. Пример:

Добавить несколько элементов можно с помощью операторов + и +=:

Кроме того, можно воспользоваться операцией присваивания значения срезу:

insert(<Индекс>, <Число>) — добавляет один элемент в указанную позицию. Остальные элементы смещаются. Метод изменяет текущий объект и ничего не возвращает. Добавим элемент в начало объекта:

Метод insert() позволяет добавить только один элемент. Чтобы добавить несколько элементов, можно воспользоваться операцией присваивания значения срезу. Добавим несколько элементов в начало объекта:

pop([<Индекс>]) — удаляет элемент, расположенный по указанному индексу, и возвращает его. Если индекс не указан, то удаляет и возвращает последний элемент. Пример:

Удалить элемент списка позволяет также оператор del:

remove(<Число>) — удаляем первый элемент, содержащий указанное значение. Если элемент не найден, возбуждается исключение ValueError. Метод изменяет текущий объект и ничего не возвращает. Пример:

reverse() — изменяет порядок следования элементов на противоположный. Метод изменяет текущий объект и ничего не возвращает. Пример:

Преобразовать объект типа bytearray в строку позволяет метод decode(). Метод имеет следующий формат:

decode([encoding=»utf-8″][, errors=»strict»])

Параметр encoding задает кодировку символов(по умолчанию UTF-8) в объекте bytearray, а параметр errors — способ обработки ошибок при преобразовании. В параметре errors можно указать значения «strict»(значение по умолчанию), «replace» или «ignore». Пример преобразования:

Для преобразования можно также воспользоваться функцией str():

PythonLearn

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *