views:

269

answers:

3

Whats the best way to convert int's, long's, double's to strings and vice versa in python.

I am looping through a list and passing longs to a dict that should be turned into a unicode string.

I do
for n in l:
    {'my_key':n[0],'my_other_key':n[1]}

Why are some of the most obvious things so complicated?

+4  A: 

To convert from a numeric type to a string:

str(100)

To convert from a string to an int:

int("100")

To convert from a string to a float:

float("100")
Mark Byers
Thanks, I found it in the docs. But I appreciate your answer very much.
Dave
Your answer is also correct
Dave
A: 

You could do it like this in Python 2.x:

>>> l = ((1,2),(3,4))
>>> dict(map(lambda n: (n[0], unicode(n[1])), l))
{1: u'2', 3: u'4'}

or in Python 3.x:

>>> l = ((1,2),(3,4))
>>> {n[0] : str(n[1]) for n in l}
{1: '2', 3: '4'}

Note that strings in Python 3 are the same as unicode strings in Python 2.

AndiDog
The way the OP uses n[0] doesn't look like it's a key
gnibbler
@gnibbler: Well, that's how I understood his pseudocode.
AndiDog
You understood right, this is a correct answer Thank You!
Dave
A: 

You can do it this way

for n in l:
    {'my_key':unicode(n[0]),'my_other_key':unicode(n[1])}

Perhaps this is clearer if there are only 2 or 3 keys/values

for my_value, my_other_value in l:
    {'my_key':unicode(my_value),'my_other_key':unicode(my_other_value)}

I think this would be better if there are more than 3 keys/values

for n in l:
    dict(zip(('my_key','myother_key'),map(unicode,n)))
gnibbler