Как перевести bytes в последовательность едениц и нолей python

Нужно преобразовать последовательность байтов в список из едениц и нолей например:

b'hello' == [0, 1, 0, 1, 0, 1, 0] # (примерно так, незнаю как будет)

Как лучше это сделать (можно любым способом, чтобы можно было дешифровать)?


Ответы (1 шт):

Автор решения: CrazyElf

Например:

result = []
for b in b'hello':
    result.extend(map(int, f'{b:08b}'))
print(result)

Вывод:

[0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1]

Или тоже самое в список списков, тогда поменять строку добавления на:

    result.append(list(map(int, f'{b:08b}')))

Вывод:

[[0, 1, 1, 0, 1, 0, 0, 0], [0, 1, 1, 0, 0, 1, 0, 1], [0, 1, 1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 1, 0, 0], [0, 1, 1, 0, 1, 1, 1, 1]]

Есть и другие варианты.

→ Ссылка