Преобразование типа Python

Каков наилучший способ конвертировать int, long, double в строки и наоборот в python.

Я перебираю список и передаю longs в dict, который должен быть преобразован в строку unicode.

Я делаю

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

Почему некоторые из самых очевидных вещей настолько сложны?

Ответ 1

Вы можете сделать это в Python 2.x:

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

или в Python 3.x:

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

Обратите внимание, что строки в Python 3 совпадают с строками unicode в Python 2.

Ответ 2

Чтобы преобразовать из числового типа в строку:

str(100)

Преобразование из строки в int:

int("100")

Для преобразования из строки в float:

float("100")

Ответ 3

Вы можете сделать это таким образом

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

Возможно, это яснее, если есть только 2 или 3 клавиши/значения

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

Я думаю, что было бы лучше, если бы было больше 3 ключей/значений

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