Как объединить строки с двоичными значениями в Python?
-
06-07-2019 - |
Вопрос
Какой самый простой способ в 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