Python类型转换
在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字符串是一样的。