tuple to string?
Steven D'Aprano
steve at REMOVETHIScyber.com.au
Sat Jul 23 04:14:10 EDT 2005
On Fri, 22 Jul 2005 06:07:28 -0700, Robert Kern wrote:
> Francois De Serres wrote:
>> hiho,
>>
>> what's the clean way to translate the tuple (0x73, 0x70, 0x61, 0x6D) to
>> the string 'spam'?
>
> In [1]: t = (0x73, 0x70, 0x61, 0x6D)
>
> In [2]: ''.join(chr(x) for x in t)
> Out[2]: 'spam'
I get a syntax error when I try that. I guess anyone who hasn't started
using Python 2.4 will also get the same error.
Since t is just a tuple, there isn't a big advantage as far as I can
see to build up and dispose of the generator machinery just for grabbing
the next item in a tuple. So a list comprehension will work just as well,
and in older versions of Python:
''.join([chr(x) for x in (0x73, 0x70, 0x61, 0x6D)])
For an even more version-independent method:
L = []
for n in (0x73, 0x70, 0x61, 0x6D):
L.append(chr(n))
print ''.join(L)
or even:
>>> ''.join(map(lambda n: chr(n), (0x73, 0x70, 0x61, 0x6D)))
'spam'
--
Steven.
More information about the Python-list
mailing list