【Python】对中文排序

您所在的位置:网站首页 拼音声调顺序怎么排序 【Python】对中文排序

【Python】对中文排序

2024-05-30 10:06| 来源: 网络整理| 查看: 265

一、python 排序

汉字排序是按照unicode数值排序

ord() 函数是 chr() 函数(对于 8 位的 ASCII 字符串)的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。

解决方案,使用汉字转拼音库pypinyin ,得到拼音及音调

from itertools import chain from pypinyin import pinyin, Style def to_pinyin(s): return ''.join(chain.from_iterable(pinyin(s, style=Style.TONE3))) print(sorted(char)) print(sorted(char, key=to_pinyin)) # ['佘', '孙', '李', '赵', '钱'] # ['李', '钱', '佘', '孙', '赵'] 二、用mysql进行排序

在查询语句的 order by 部分使用 CONVERT 函数。

比如 select * from mytable order by CONVERT(chineseColumnName USING gbk);

UTF8 默认校对集是 utf8_general_ci , 它不是按照中文来的。你需要强制让MySQL按中文来排序。

下面给出一个例子:

按中文排序前: 在这里插入图片描述

按custName字段进行升序排列:

SELECT * FROM t_customer ORDER BY CONVERT(custName USING gbk) ASC

在这里插入图片描述

按custName字段进行降序排列:

SELECT * FROM t_customer ORDER BY CONVERT(custName USING gbk) DESC 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3