Преобразование типа 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)))