本文由我司收集整编,推荐下载,如有疑问,请与我司联系

Python

中文排序(转载)

2012/02/02

3793

Python

比较字符串大小时,根据的是

ord

函数得到的编码

值。基于它的排序函数

sort

可以很容易为数字和英文字母排序,因为它们在编码表

中就是顺序排列的。

但要很处理中文就没那么容易了。中文通常有拼音和笔画两种排序方式,在最常

用中文标准字符集

GB2312

中,

3755

个一级中文汉字是按照拼音序进行编码的,而

3008

个二级汉字则是按部首笔画排列,

出现这样的结果是因为‘曙’和‘曾’都是常用字,而‘鲑’和‘怡’都是次

常用字,但无论从笔画还是拼音来看,这两对顺序都应该反过来。后来扩充的

GBK

GB18030

编码为了向下兼容,都没有更改之前的汉字顺序,于是

sort

之后的次序

就很乱了。另一方面

unicode

编码的中文是按《康熙字典》的偏旁部首和笔画数来

排列的,因此排序结果和

GB

编码又不一样。

12345 # encoding=utf8char=[‘

’,’

’,’

’,’

’,’

’]char.sort()for item in char: print

item.decode(‘utf-8’).encode(‘gb2312’)

12345

#

encoding=gb2312char=[‘

’,’

’,’

’,’

’,’

’]char.sort()for

item

in

char:

print

item

输出是:

李钱孙赵佘

。显然,这两个

结果都不是我们想要的。那我们究竟怎样才能对中文正确排序呢?

先要弄清楚中文词典的排序规则:先按拼音排列,区分四声,拼音相同的就看笔

画数目多少,笔画数也相同的再按笔顺中的具体笔划类型来区分,新华字典采用的

顺序是一丨丿丶乙,也称作

天上人间

,应该没有笔划类型也完全一样的。因此中

文排序不仅需要带音调的汉字拼音对照表,还需要有具体笔顺的数据。

本以为有现成的模块,试了几个都不理想。

pyzh

的转换代码只支持不到

7

字,而且还没有音调。水木的

roy

的代码涵盖了

2

万多字符,但需要

pysqlite

......

还是自立更生吧~

我找到最全的数据是

slowwind9999

上传到

csdn

unicode

汉字编码表,包括全

20902

个汉字的全拼、五笔、郑码、

UNICODE

GBK

、笔画数

部首,以及笔顺

编号(拼音部分没有音调,而且个别注音有误,如

囍,猤,啹等字,使用需注

python汉字排序_【IT专家】Python中文排序(转载)相关推荐

  1. MySQL多字段排序乱_Mysql ORDER BY 中文排序错乱问题

    1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL ...

  2. js数组按中文拼音排序_通俗易懂讲 Python 算法:快速排序

    原文:https://stackabuse.com/quicksort-in-python/ 作者:Marcus Sanatan 译者:老齐 欢迎在 bilibili  搜索 freeCodeCamp ...

  3. python set 排序_python set 排序_如何在Python中使用sorted()和sort()

    点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基  著 18财税3班 李潇潇    译 日期:2019年5月6日 一. 使用sorted() ...

  4. python列表内数字排序_如何在Python中手动排序数字列表?

    规格:Ubuntu 13.04,Python 3.3.1 背景:Python的初学者,遇到了这个"手动排序"的问题. 我被要求做的是:"让用户输入3个数值并将它们存储在3 ...

  5. python operator 多属性排序_快速入门Python必备的基础知识

    本文内容目录: 变量 注释 数据类型 条件判断 循环 函数 模块 数据结构 1.变量 在代码里,我们用变量来存放数据,利用"="为变量赋值. 变量的命名技巧:前半部分能代表数据的意 ...

  6. python表格对齐_浅谈python str.format与制表符\t关于中文对齐的细节问题

    写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...

  7. python制表符对齐_浅谈python str.format与制表符\t关于中文对齐的细节问题

    写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...

  8. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  9. python递归函数例题_递归案例python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...

  10. python变量标识符_简谈-Python的注释、变量类型、标识符及关键字

    在Python程序中,要想支持中文输出,则要在代码前面添加 标识符:开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 .函数名等 标识符的规则: 标示符由字目.下划线和数字组成,且 ...

最新文章

  1. python实现网络监控_使用python进行服务器监控
  2. 手摸手入门前端--01.webpack4
  3. js画布组件(canvas/canvas)
  4. [RDMA] 高性能异步的可靠消息传递和RPC :Accelio
  5. 力挺2007年国内原创音乐届最权威大赛!
  6. Community Server系列之四:Ajax在CS2.0中的应用1
  7. 【NOIP2018】赛道修建【二分】【树形dp】【multiset】【贪心】
  8. 我们的开源项目-2013年度开源社区线下聚会《JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用》PPT分享
  9. linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...
  10. Ant部署测试出错(关键字:Ant NoClassDefFoundError xml-apis/jar)
  11. 【RMQ问题】求数组区间最大值,NYOJ-1185-最大最小值
  12. html5怎么在画布怎么旋转,javascript – 如何旋转HTML5画布的现有内容?
  13. oracle Client 11g静默安装
  14. JAVA运行时异常及常见的5中RuntimeExecption
  15. Python + Selenium,带你分分钟搭建 Web 自动化测试框架!
  16. 分布式与集群的联系与区别
  17. Mac x 10.12.4 如何安装sshfs
  18. Unity 面试经验汇总
  19. Excel表格中如何批量删除工作表
  20. 比树莓派好的linux板子,华硕Tinker Board主打“比树莓派再好一点”的开发板

热门文章

  1. table表格高级用法(二)
  2. Map.Entry如何使用?
  3. @Cotroller和@RestCotroller
  4. maven项目在pom.xml中设置JDK编译版本
  5. c语言disp是什么意思及用法,disp(disp是什么功能)
  6. mysql修改引擎_修改MySQL引擎
  7. c语言学习-编写递归函数用于计算n!
  8. linux系统可以使用ppt功能不,Linux操作系统使用5.ppt
  9. C++array容器用法解析,它与普通数组究竟有何不同?
  10. Atata——C# Web测试自动化框架