Как объединить строки с двоичными значениями в Python?

StackOverflow https://stackoverflow.com/questions/1012457

Вопрос

Какой самый простой способ в Python объединить строку с двоичными значениями?

sep = 0x1
data = ["abc","def","ghi","jkl"]

Поиск данных результата " abc0x1def0x1ghi0x1jkl " , где 0x1 - двоичное значение, а не строка "0x1".

Это было полезно?

Решение

я думаю

joined = '\x01'.join(data) 

должен это сделать. \ x01 - это escape-последовательность для байта со значением 0x01.

Другие советы

Функция chr () преобразует переменную в строку с искомым двоичным значением.

>>> sep = 0x1
>>> sepc = chr(sep)
>>> sepc
'\x01'

Затем можно использовать функцию join () для объединения последовательности строк с двоичным значением в качестве разделителя.

>>> data = ['abc']*3
>>> data
['abc', 'abc', 'abc']
>>> sepc.join(data)
'abc\x01abc\x01abc'

Я знаю, что это не лучший метод, но другой способ, который может быть полезен в другом контексте для одного и того же вопроса:

>>> x=(str(bin(0b110011000)))
>>> b=(str(bin(0b11111111111)))
>>> print(x+b)
0b1100110000b11111111111

И, если необходимо, для удаления двух левых двух битов каждой строки (то есть панели 0b) функция слайса [2:] со значением 2 работает:

>>> x=(str(bin(0b110011000)[2:]))
>>> b=(str(bin(0b11111111111)[2:]))
>>> print(x+b)
11001100011111111111
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top