Python关于list里面的unicode编码

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

import jieba
seg_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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值