Python关于list里面的unicode编码

来源:互联网 发布:mac版matlab怎么样 编辑:程序博客网 时间:2024/05/17 21:56

利用Python2.7结巴分词对文本分词之后存进list列表里面

import jiebaseg_list = jieba.cut("网络,让我们之间的距离变的如此之近,也如此遥远。")a = [i for i in seg_list]a = str(a).replace('u\'','\'')  s = a.decode("unicode-escape")  print s

此时seg_list是一个生成器generator。如果不存进列表直接一次性打印的话,需要添加print ' '.join(seg_list)。

存进列表之后如果只是到了第一个a就输出的话,结果如下:

[u'\u7f51\u7edc', u'\uff0c', u'\u8ba9', u'\u6211\u4eec', ...]

此时如果直接索引的话,打印出来是正常中文,如print a[0]。

为了将list里面的字符串更换为中文,需要先将前面的u替换为空,之后利用decode函数解码,结果如下:

['网络', '让', '我们', '之间', '的', '距离', '变', '的', '如此', '之近', ',', '也', '同时', '让', '我们', '变', '的', '如此', '遥远', '。']

此时list全部变成unicode格式。如果文本包含标点符号也能分得出来,例如,“清峪路260-278号(双)、258弄33、35号”,结果如下:

['清峪路', '260', '-', '278', '号', '(', '双', ')', '、', '258', '弄', '33', '、', '35', '号']

结巴分词如果需要去掉标点符号,则在jieba.cut加上参数:

seg_list = jieba.cut("清峪路260-278号(双)、258弄33、35号",cut_all=True)

0 0