概述
本文实例讲述了Python实现针对中文排序的方法。分享给大家供大家参考,具体如下:
Python比较字符串大小时,根据的是ord函数得到的编码值。基于它的排序函数sort可以很容易为数字和英文字母排序,因为它们在编码表中就是顺序排列的。
>> print ','< '1'<'A'<'a'<'阿'
True
但要很处理中文就没那么容易了。中文通常有拼音和笔画两种排序方式,在最常用中文标准字符集GB2312中,3755个一级中文汉字是按照拼音序进行编码的,而3008个二级汉字则是按部首笔画排列,
>> print '曙'< '鲑','曾'<'怡'
True True
出现这样的结果是因为‘曙'和‘曾'都是常用字,而‘鲑'和‘怡'都是次常用字,但无论从笔画还是拼音来看,这两对顺序都应该反过来。后来扩充的GBK和GB18030编码为了向下兼容,都没有更改之前的汉字顺序,于是sort之后的次序就很乱了。
另一方面unicode编码的中文是按《康熙字典》的偏旁部首和笔画数来排列的,所以排序结果和GB编码又不一样。
# encoding=utf8
char=['赵','钱','孙','李','佘']
char.sort()
for item in char:
print item.decode('utf-8').encode('gb2312')
输出是:"佘孙李赵钱"
最后
以上就是魁梧高山为你收集整理的python汉字排序_Python实现针对中文排序的方法的全部内容,希望文章能够帮你解决python汉字排序_Python实现针对中文排序的方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复