Как объединить строки с двоичными значениями в Python? - PullRequest
4 голосов
/ 18 июня 2009

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

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

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

Ответы [ 3 ]

10 голосов
/ 18 июня 2009

Я думаю

joined = '\x01'.join(data) 

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

3 голосов
/ 18 июня 2009

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

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

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

>>> data = ['abc']*3
>>> data
['abc', 'abc', 'abc']
>>> sepc.join(data)
'abc\x01abc\x01abc'
0 голосов
/ 18 сентября 2018

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

>>> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...