Bei dem `struct.pack()` fehlt ein Formatzeichen. Da sind nur zwei 'B', aber drei Argumente. Angenommen das sollten drei 'B' sein, dann würde ich das so schreiben (ungetestet):
Code: Alles auswählen
from itertools import imap
def foo(iterable):
for index, item in enumerate(iterable):
if item[d_ptr] > 0:
for result in (index, item[d_ptr], item[a_ptr]):
yield result
result = ''.join(imap(chr, foo(elements)))
Die Namen könnten spezifischer sein, aber ich weiss ja nicht worum es geht.
Wenn bei der Ausgabe nicht alles in Hex geschrieben werden soll, sondern nur die Bytes, die nicht als druckbare ASCII-Zeichen dargestellt werden können, dann geht auch ``print repr(s))``.