python汉字排序_【IT专家】Python中文排序(转载)
本文由我司收集整编,推荐下载,如有疑问,请与我司联系
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:
item
输出是:
“
李钱孙赵佘
”
。显然,这两个
结果都不是我们想要的。那我们究竟怎样才能对中文正确排序呢?
先要弄清楚中文词典的排序规则:先按拼音排列,区分四声,拼音相同的就看笔
画数目多少,笔画数也相同的再按笔顺中的具体笔划类型来区分,新华字典采用的
顺序是一丨丿丶乙,也称作
“
天上人间
”
,应该没有笔划类型也完全一样的。因此中
文排序不仅需要带音调的汉字拼音对照表,还需要有具体笔顺的数据。
本以为有现成的模块,试了几个都不理想。
pyzh
的转换代码只支持不到
7
千
字,而且还没有音调。水木的
roy
的代码涵盖了
2
万多字符,但需要
pysqlite
支
持
......
还是自立更生吧~
我找到最全的数据是
slowwind9999
上传到
csdn
的
unicode
汉字编码表,包括全
部
20902
个汉字的全拼、五笔、郑码、
UNICODE
、
GBK
、笔画数
部首,以及笔顺
编号(拼音部分没有音调,而且个别注音有误,如
囍,猤,啹等字,使用需注
python汉字排序_【IT专家】Python中文排序(转载)相关推荐
- MySQL多字段排序乱_Mysql ORDER BY 中文排序错乱问题
1. 在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的. 这种情况在MySQL的很多版本中都存在. 如果这个问题不解决,那么MySQL ...
- js数组按中文拼音排序_通俗易懂讲 Python 算法:快速排序
原文:https://stackabuse.com/quicksort-in-python/ 作者:Marcus Sanatan 译者:老齐 欢迎在 bilibili 搜索 freeCodeCamp ...
- python set 排序_python set 排序_如何在Python中使用sorted()和sort()
点击"蓝字"关注我们 ?"Python基础知识" 大卫·丰达科夫斯基 著 18财税3班 李潇潇 译 日期:2019年5月6日 一. 使用sorted() ...
- python列表内数字排序_如何在Python中手动排序数字列表?
规格:Ubuntu 13.04,Python 3.3.1 背景:Python的初学者,遇到了这个"手动排序"的问题. 我被要求做的是:"让用户输入3个数值并将它们存储在3 ...
- python operator 多属性排序_快速入门Python必备的基础知识
本文内容目录: 变量 注释 数据类型 条件判断 循环 函数 模块 数据结构 1.变量 在代码里,我们用变量来存放数据,利用"="为变量赋值. 变量的命名技巧:前半部分能代表数据的意 ...
- python表格对齐_浅谈python str.format与制表符\t关于中文对齐的细节问题
写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...
- python制表符对齐_浅谈python str.format与制表符\t关于中文对齐的细节问题
写了一个练手的爬虫...在输出的时候出现了让人很不愉♂悦的问题 像这样: 令人十分难受啊! #------------------------------------------ 在此之前先说一下py ...
- python len函数_知识清单Python必备的69个函数,你掌握了吗?
本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...
- python递归函数例题_递归案例python
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 而对应的中文翻译 "递归" 却表达了两个意思:"递 ...
- python变量标识符_简谈-Python的注释、变量类型、标识符及关键字
在Python程序中,要想支持中文输出,则要在代码前面添加 标识符:开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 .函数名等 标识符的规则: 标示符由字目.下划线和数字组成,且 ...
最新文章
- python实现网络监控_使用python进行服务器监控
- 手摸手入门前端--01.webpack4
- js画布组件(canvas/canvas)
- [RDMA] 高性能异步的可靠消息传递和RPC :Accelio
- 力挺2007年国内原创音乐届最权威大赛!
- Community Server系列之四:Ajax在CS2.0中的应用1
- 【NOIP2018】赛道修建【二分】【树形dp】【multiset】【贪心】
- 我们的开源项目-2013年度开源社区线下聚会《JEECG微云快速开发平台-SAAS企业应用在线开发与微信移动应用》PPT分享
- linux nginx 配置端口访问,Linux入门教程:ubuntu 16.04配置nginx服务器实现一个IP一个端口多个站点,ubuntunginxNginx 使用异步...
- Ant部署测试出错(关键字:Ant NoClassDefFoundError xml-apis/jar)
- 【RMQ问题】求数组区间最大值,NYOJ-1185-最大最小值
- html5怎么在画布怎么旋转,javascript – 如何旋转HTML5画布的现有内容?
- oracle Client 11g静默安装
- JAVA运行时异常及常见的5中RuntimeExecption
- Python + Selenium,带你分分钟搭建 Web 自动化测试框架!
- 分布式与集群的联系与区别
- Mac x 10.12.4 如何安装sshfs
- Unity 面试经验汇总
- Excel表格中如何批量删除工作表
- 比树莓派好的linux板子,华硕Tinker Board主打“比树莓派再好一点”的开发板
热门文章
- table表格高级用法(二)
- Map.Entry如何使用?
- @Cotroller和@RestCotroller
- maven项目在pom.xml中设置JDK编译版本
- c语言disp是什么意思及用法,disp(disp是什么功能)
- mysql修改引擎_修改MySQL引擎
- c语言学习-编写递归函数用于计算n!
- linux系统可以使用ppt功能不,Linux操作系统使用5.ppt
- C++array容器用法解析,它与普通数组究竟有何不同?
- Atata——C# Web测试自动化框架