Python类型转换

11 投票
3 回答
66185 浏览
提问于 2025-04-15 19:59

在Python中,如何把整数(int)、长整型(long)、双精度浮点数(double)转换成字符串,反过来也一样,最好的方法是什么?

我正在遍历一个列表,把长整型的数字传给一个字典,然后这个字典应该变成一个Unicode字符串。

我这样做:

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

为什么有些看起来最简单的事情反而这么复杂呢?

3 个回答

0

你可以这样做

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)))
38

要把数字类型转换成字符串:

str(100)

要把字符串转换成整数:

int("100")

要把字符串转换成浮点数:

float("100")
2

在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中的字符串和Python 2中的unicode字符串是一样的。

撰写回答