位置: 编程技术 - 正文

Python实现针对中文排序的方法(python如何用)

编辑:rootadmin

推荐整理分享Python实现针对中文排序的方法(python如何用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python用,python中zoom,python 中,用python写中国,利用python进行,用python写中国,python zhon,python zhon,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了Python实现针对中文排序的方法。分享给大家供大家参考,具体如下:

Python比较字符串大小时,根据的是ord函数得到的编码值。基于它的排序函数sort可以很容易为数字和英文字母排序,因为它们在编码表中就是顺序排列的。

但要很处理中文就没那么容易了。中文通常有拼音和笔画两种排序方式,在最常用中文标准字符集GB中,个一级中文汉字是按照拼音序进行编码的,而个二级汉字则是按部首笔画排列,

出现这样的结果是因为‘曙'和‘曾'都是常用字,而‘鲑'和‘怡'都是次常用字,但无论从笔画还是拼音来看,这两对顺序都应该反过来。后来扩充的GBK和GB编码为了向下兼容,都没有更改之前的汉字顺序,于是sort之后的次序就很乱了。

另一方面unicode编码的中文是按《康熙字典》的偏旁部首和笔画数来排列的,所以排序结果和GB编码又不一样。

输出是:"佘孙李赵钱";而保存成gb编码后

输出是:“李钱孙赵佘”。显然,这两个结果都不是我们想要的。那我们究竟怎样才能对中文正确排序呢?

先要弄清楚中文词典的排序规则:先按拼音排列,区分四声,拼音相同的就看笔画数目多少,笔画数也相同的再按笔顺中的具体笔划类型来区分,新华字典采用的顺序是一丨丿丶乙,也称作“天上人间”,应该没有笔划类型也完全一样的。所以中文排序不仅需要带音调的汉字拼音对照表,还需要有具体笔顺的数据。

Python实现针对中文排序的方法(python如何用)

本以为有现成的模块,试了几个都不理想。pyzh的转换代码只支持不到7千字,而且还没有音调。水木的roy的代码涵盖了2万多字符,但需要pysqlite支持......还是自立更生吧~

我找到最全的数据是slowwind上传到csdn的unicode汉字编码表(点击此处本站下载。),包括全部个汉字的全拼、五笔、郑码、UNICODE、GBK、笔画数 部首,以及笔顺编号(拼音部分没有音调,而且个别注音有误,如 ?郑?g,??茸郑?褂眯枳⒁狻#┪姨崛×似渲械谋仕呈?荩?钟媒?炯?摹笆涤煤鹤肿?匆簟背绦蛑谱髁?nicode汉字音调版,其中中文汉字用四声标注,个日韩汉字没有音调以示区别,并根据汉典的数据略作修正(但仍可能存在错误)。有了这两个对照表,下面的工作就简单了。

笔顺字典的处理方法也完全相同,虽然文本有两万行,导入还是很快的,0.5秒左右。如果把这两个文件合并起来统一处理,应该可以更快。

查找中文,一律转为UTF8字符串,汉字外的其他字符不做处理,原样输出。如果需要声母,只输出拼音的第一个字符就是了。只要资料准确,比较起来就很轻松了。数字在字母之前,爱(ai4)便会比昂(ang2)靠前,而笔顺值的位数代表了笔画数,数值对应笔划权重,直接比较数字大小就可以得到正确的顺序。代码如下:

现在我们就可以按照字典的规范给中文排序了。

终于得到了“李钱佘孙赵”,示例文件点此下载。

这里我没有考虑多音字的情况。如果想让程序自动识别,可以增加多音词组对照表,通过上下文来判断。我不知道哪里有这样的数据,反正对于多音字不太多的情形,手动调整也就够了。

PS:这里再为大家推荐2款比较实用的相关在线排序工具供大家参考使用:

在线中英文根据首字母排序工具: Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

python中requests小技巧 关于Pythonrequests,在使用中,总结了一些小技巧把,记录下。1:保持请求之间的Cookies,我们可以这样做。2:请求时,会加上headers,一般我们会写成这

Python遍历文件夹和读写文件的实现方法 需求分析1、读取指定目录下的所有文件2、读取指定文件,输出文件内容3、创建一个文件并保存到指定目录实现过程Python写代码简洁高效,实现以上功

python 3.5下xadmin的使用及修复源码bug 前言xadmin是一个django的管理后台实现,使用了更加灵活的架构设计及BootstrapUI框架,目的是替换现有的admin,国人开发,有许多新的特性:兼容DjangoAdmin

标签: python如何用

本文链接地址:https://www.jiuchutong.com/biancheng/375641.html 转载请保留说明!

上一篇:浅谈python socket函数中,send与sendall的区别与使用方法(浅谈python要进行房价预测的优点和缺点)

下一篇:python中requests小技巧

  • 附加税填表说明
  • 计提本月增值税会计科目
  • 建筑业增值税税率2022
  • 支付职工的培训费计入什么科目
  • 融资租入的固定资产需要计提折旧吗
  • 经营用的电饭锅有哪些
  • 公司不交工会经费的原因,风险说明
  • 小规模没有成本票怎么做账
  • 所购税控盘减免税款
  • 岗位津贴和岗位补贴
  • 高新技术企业认证都有哪些条件
  • 会计核算形式的主要区别
  • 研发费用在企业所得税中怎么扣除
  • 收到现金货款可以直接用吗
  • 已认证抵扣的进项发票,次月开具红字发票信息表,凭证
  • 资产已报废折旧怎么计算
  • 预付账款余额怎么算
  • 固定资产盘盈可计入
  • 运输公司购买运输车辆保险进什么科目
  • 小规模纳税人可以转为一般纳税人吗?
  • 营改增后还有营业费用吗
  • 营业执照上能看出来是一般纳税人
  • 现金折扣应不应计入成本
  • 电子税务局进项票汇总
  • 销售应税消费品应交的消费税分录
  • 暂估运费成本的账务处理
  • 支付境外销售佣金如何入账科目
  • win7硬盘安装win10教程
  • windows11如何进入启动设置
  • 深入php:面向对象、模式与实践
  • mac如何打开蓝牙
  • NJeeves.exe - NJeeves进程文件是什么意思 有什么用
  • html img位置
  • 支付工资属于费用吗
  • laravel入门与实战:构建主流php应用开发框架
  • 【torch.nn.Parameter 】参数相关的介绍和使用
  • 猿创征文,新芯设计
  • ai图片生成矢量图
  • 微软 new bing 广告收入
  • 应收账款与企业价值的关系
  • 新手为什么要买二手车
  • 修的公路是否上固定资产
  • 金税盘税控盘和税务Ukey有什么区别
  • 土地增值税的相关问题
  • 退回发票金额是什么意思
  • 规模以上企业纳税要求
  • 来料加工分录
  • 增值税发票相关罪名
  • sqlserver数据库定时任务
  • SQL Server UPDATE语句的用法详解
  • 财务费用报销流程图word
  • 税控盘退费怎么做会计分录
  • 融资租赁的进项怎么做账
  • 记账凭证错误的更正方法
  • 加油票和过桥过路费怎么做账
  • 可供出售债权投资
  • 维修服务开票
  • 金税盘税费减免分录
  • 顺风车没有发票是否合法
  • 利润分配未分配利润怎么结转
  • 存货的实际成本法
  • sql外连接
  • sql server储存过程的创建与使用
  • bios设置电脑定时启动
  • bat批处理视频教程
  • 字符有大小吗
  • javascript definitive guide
  • selenium自动化步骤
  • unity怎么创建空对象
  • 创建一个新用户user1,设置其主目录为/home/user1:
  • python怎么启动命令
  • 关于事件的报告范文
  • android程序代码
  • jquery解析XML及获取XML节点名称的实现代码
  • 如何查询车辆购买的保险
  • 云南省低保查询网上查询
  • 内蒙古税务局发票认证
  • 公务员考试税局
  • 查询产品真伪怎么查询app
  • 苏通卡上海服务网点查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设