Преобразование типов Python - PullRequest
10 голосов
/ 04 марта 2010

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

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

Я делаю

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

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

Ответы [ 3 ]

37 голосов
/ 04 марта 2010

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

str(100)

Чтобы преобразовать строку в int:

int("100")

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

float("100")
2 голосов
/ 04 марта 2010

Вы можете сделать это так в 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.

0 голосов
/ 04 марта 2010

Вы можете сделать это так

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...