Тип данных 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([<Индекс>]) – удаляет элемент, расположенный по указанному индексу, и возвращает его. Если индекс не указан, то удаляет и возвращает последний элемент. Пример:

Накрутка лайков на Аск фм – тема, которая волнует продвинутую молодёжь. Что выгоднее увеличить их своими силами или накрутить лайки за деньги – плюсы и минусы способов. А также как найти сервис с лучшими ценами на лайки Аск фм, советы даёт блог pricesmm.com

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

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

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

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

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

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

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

PythonLearn