O código Python3 a seguir pega uma lista de entrada de bytes e imprime sua representação hexadecimal "estilo C", 12 por linha:
def c_array_body_from_bytes(input_bytes):
"""Emit the provided bytes as the body of a C array."""
lines = ""
for i in range(0, len(input_bytes), 12):
lines += "".join(f"0x{b:02x}, " for b in input_bytes[i : i + 12]) + "\n"
return lines
print(c_array_body_from_bytes(range(64)))
Isso pode ser expresso de forma mais concisa como uma única instrução de retorno que usa uma compreensão aninhada, sem exigir a lines
variável do acumulador? Em caso afirmativo, o que parece?
Com uma única instrução baseada em
str.join
s combinados: