现象:列表中的中文打印出来后显示为十六进制

>>> lt=['大神','zhzhgo']
>>> print lt
['\xb4\xf3\xc9\xf1', 'zhzhgo']
>>>

首先需要明确,这不是乱码,这是 unicode 字符串在内存中的形式,python 在命令行界面输出的数据,如果不是ASCII码,则会以十六进制形式输出。

如何使打印出来的结果显示为中文呢?解决办法如下:

#-*-coding:utf-8-*-
lt=["大神",'zhzhgo']
str=','.join(lt) #将列表转换为字符串
print str
print type(str)
lt=list(str)
print lt
print type(lt)

打印结果如下:

大神,zhzhgo

<type 'str'>

['\xe5', '\xa4', '\xa7', '\xe7', '\xa5', '\x9e', ',', 'z', 'h', 'z', 'h', 'g', 'o']

<type 'list'>