Concise way to format list/array to custom(hex) string

Zoltán Nagy abesto0 at gmail.com
Sat Aug 2 08:50:38 EDT 2008


Kurien Mathew írta:
> Hello,
> 
> What will be a concise & efficient way to convert a list/array.array of
> n elements into a hex string? For e.g. given the bytes
> [116, 111, 110, 103, 107, 97]
> I would like the formatted string
> 0x74 0x6f 0x6e 0x67 0x6b 0x61
> 
> Is there an approach better than below:
> hex = ''
> for b in bytes:
>     hex += ('0x%x '%b)
> 
<snip>

You should avoid multiple string additions, as each one creates a new
string object (str objects are immutable). Try this:

bytes = [116, 111, 110, 103, 107, 97]
string = ''.join( ['0x%x '%b for b in bytes] )



More information about the Python-list mailing list