Для просто списка делаю вот так a = array= bytearray(a)
Как получить массив байт со списка вот такого типа [0x0A, 0x0B, 0x0C, , “string”] ?
>>> lst = [0x0A, 0x0B, 0x0C, 'string'] >>> >>> bt = bytearray() >>> for i in lst: ... if type(i) is int: ... bt.append(i) ... else: ... bt.extend(i.encode('latin1')) ... >>> bt bytearray(b'\n\x0b\x0cstring') >>>
# python 2.x for i in lst: if isinstance(i, (int, long)): bt.append(chr(i)) ... # python 3.x for i in lst: if isinstance(i, int): bt.append(i.to_bytes(1, byteorder='big')) ...
vic_gorНе очень понятно что вы имеете ввиду.
До этого писал на СИ на ARM, AVR
pyuser
C целыми скорее так:bt.append(i.to_bytes(1, byteorder='big'))
>>> (256).to_bytes(1, 'big') Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: int too big to convert >>>
>>> (256).to_bytes(4, 'big') b'\x00\x00\x01\x00' >>>
>>> (256).to_bytes(2, 'big') b'\x01\x00' >>> '\x01\x00'.encode('latin1') b'\x01\x00' >>>