`
ipython
  • 浏览: 293824 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

python 汉字按拼音排序

 
阅读更多

python 汉字按拼音排序,

 

原理很简单,就是根据汉字拼音字典,将汉字转为拼音,然后sort一下就好了,不过对于多音字倒是没有办法了。

 

#encoding:utf-8
import re

def sort_pinyin (names):
	'''pinyin.txt:
	吖	a1
	阿	a1
	啊	a1
	锕	a1
	錒	a1
	嗄	a2
	厑	aes
	'''
	pinyin = file('pinyin.txt').read().decode('utf-8').split('\n')
	pinyin_dict = {}
	for line in pinyin:
		if not line.strip():
			continue
		tmp = line.split('\t')
		pinyin_dict[tmp[0].strip()] = re.sub(r'\d*','',tmp[1].strip())
	
	names_sort = sorted (names, key=lambda x:''.join([pinyin_dict.get(i) for i in x]))
	
	return names_sort
	
if __name__ == "__main__":
	x = u'广州, 深圳, 北京, 长沙, 上海, 武汉, 成都, 南京, 重庆, 济南, 南宁, 西安, 天津, 合肥, 东莞, 厦门, 昆明, 岳阳, 海口, 长春, 徐州, 德阳, 南昌, 沈阳, 太原, 兰州, 太仓, 杭州, 芜湖, 佛山, 肇庆, 福州, 安顺, 大连, 扬州, 北海, 乌鲁木齐, 青岛, 贵阳'
	x = x.split(', ')
	
	x2 = sort_pinyin(x)
	for i in x:
		print i,
	print '\n------------'
	for i in x2:
		print i,
		
	'''oupput 
	安顺 北海 北京 长春 长沙 成都 大连 德阳 东莞 佛山 福州 广州 贵阳 海口 杭州 合肥
	济南 昆明 兰州 南昌 南京 南宁 青岛 厦门 上海 深圳 沈阳 太仓 太原 天津 乌鲁木齐
	芜湖 武汉 西安 徐州 扬州 岳阳 肇庆 重庆
	'''

 

分享到:
评论
1 楼 jacklin2015 2016-12-28  


挺好用的 就是 多音字 有待改进  比如 重庆

相关推荐

    软件实现汉字按拼音排序

    在IT领域,尤其是在编程和数据处理中,对汉字进行按拼音排序是一项常见的需求。这个任务主要涉及汉字与拼音之间的转换以及排序算法的应用。标题“软件实现汉字按拼音排序”所指的知识点主要包括以下几部分: 1. **...

    中文数组按拼音排序代码

    标题提到的“中文数组按拼音排序代码”是一个解决这个问题的方法,它通常涉及到将中文字符转换为其对应的拼音,然后再进行排序。 首先,我们要理解Python3如何处理字符串。在Python3中,字符串是以Unicode编码存储...

    Python 如何按照拼音顺序对中文汉字进行排序 Python源码

    Python 如何按照拼音顺序对中文汉字进行排序 Python源码Python 如何按照拼音顺序对中文汉字进行排序 Python源码Python 如何按照拼音顺序对中文汉字进行排序 Python源码Python 如何按照拼音顺序对中文汉字进行排序 ...

    通过python脚本实现plex媒体项目拼音排序、拼音搜索及类型标签汉化

    在中文环境中,由于汉字的排序规则与英文字符不同,拼音排序是一种常用的方法,它基于汉字的拼音来对媒体项目进行排序。例如,电影名“阿凡达”("Āfāndá")会排在“疯狂动物城”("Fēngkuáng dòngwù chéng...

    基于Python实现的拼音分词器,将连续的拼音切分为单字拼音列表,开箱即用,基于前缀树(PyTrie)把连续拼音切分为单字拼音

    这样的处理对于后续的拼音转汉字、拼音排序、拼音模糊搜索等操作至关重要。在中文处理中,由于汉字与拼音的对应关系并非一一对应(多音字的存在),因此正确的拼音分词有助于提高算法的准确性和鲁棒性。 在Python中...

    python-pinyin, 汉字拼音转换工具 Python 版(pypinyin)。.zip

    3. **中文排序**:通过拼音对汉字进行排序,使得非汉字字符(如数字或英文)也能参与排序。 4. **拼音输入法**:在开发自定义拼音输入法时,可以利用该库进行拼音解析和候选词生成。 5. **中文数据分析**:在进行...

    Python-汉字拼音转换工具Python版

    总之,Python中的汉字拼音转换工具,如`pypinyin`库,是处理中文文本的重要工具,它简化了汉字到拼音的转换过程,极大地便利了自然语言处理任务的实现。无论是在搜索引擎优化、文本分析还是语音识别等领域,都能看到...

    按拼音把列表排序

    总的来说,“按拼音排序”是一个实用的功能,特别是在处理中文字符时。通过使用`pypinyin`库,我们可以轻松地将中文列表转换为拼音排序后的列表,从而提高用户体验并简化数据处理流程。在开发过程中,了解并掌握这样...

    按姓氏拼音排序.rar

    "按姓氏拼音排序.rar" 提供的场景是将人员名单按照中文姓氏的拼音顺序进行排列。这个主题涉及到中文字符编码、拼音转换以及排序算法等多个知识点。 首先,中文字符在计算机中的表示通常采用Unicode编码,比如常用的...

    Python代码源码-实操案例-框架案例-如何按照拼音顺序对中文汉字进行排序.zip

    在Python编程语言中,对中文汉字进行拼音排序是一项常见的需求,尤其在处理中文数据时。这个压缩包文件“Python代码源码-实操案例-框架案例-如何按照拼音顺序对中文汉字进行排序.zip”显然是一个关于如何实现这一...

    解决Sqlite中文排序问题(网页)

    可以利用开源库如pinyin4j(Java)或pypinyin(Python)等,将汉字转换为拼音。这个函数应该返回两个字符串拼音的比较结果。 3. 使用自定义Collation: 在创建表时,或者在查询语句中,指定使用`chinese_pinyin` ...

    中文汉字转拼音 大写(默认) 小写 首字母大写

    汉字转拼音的实现通常依赖于特定的库或API,如Python中的`pypinyin`库,它可以处理多种拼音转换格式。这些工具通常基于词典和算法来实现,包括声母、韵母和声调的匹配。 在实际应用中,汉字转拼音有以下几种用途: ...

    python获取一组汉字拼音首字母的方法

    Python 中文拼音处理 要获取汉字的拼音首字母,我们可以采用以下几种方法: - **使用第三方库**:如`pypinyin`,这是一个非常强大的库,可以直接安装并使用。 - **自定义算法**:对于简单的应用,可以通过解析GBK...

    Python-xpinyin一个用于把汉字转换为拼音的库

    Python的xpinyin库是一个强大的工具,它允许开发者将汉字转换为拼音,这在处理中文文本时非常有用。这个库的设计简单易用,可以方便地集成到各种Python项目中,尤其适用于那些需要对汉字进行拼音处理的场景,比如...

    Python实现针对中文排序的方法

    中文通常有拼音和笔画两种排序方式,在最常用中文标准字符集GB2312中,3755个一级中文汉字是按照拼音序进行编码的,而3008个二级汉字则是按部首笔画排列, >> print '曙'< '鲑','曾'<'怡' True True 出现...

    根据汉字获取拼音,并能做比较

    对于比较,拼音比较通常用于实现拼音排序或相似性检测。例如,我们可以通过比较两个词的拼音来判断它们的发音是否接近,这在语音识别或推荐系统中很有用。在Python中,可以使用Levenshtein距离或Jaccard相似度等字符...

    姓名笔画排序软件

    在中文环境中,姓名的排序通常有两种常见方式:拼音排序和笔画排序。拼音排序是按照汉语拼音的字母顺序来排列,适用于大部分情况,尤其是当名字中包含不同汉字时。例如,"张三"会排在"李四"之前,因为"z"在字母表中...

    汉字拼音转换工具(Python 版)-python

    或者在数据库中对汉字数据进行拼音排序,使得搜索和浏览更符合用户的预期。此外,还可以用于语音识别系统的预处理,将汉字文本转换为发音的拼音,便于后续的语音合成。 总的来说,这个Python版的汉字拼音转换工具是...

    获得汉字拼音(无需字库支持)

    4. **字头**:字头一般指的是汉字拼音的第一个字母,可以用于索引和排序,例如“中国”的字头为“Z”。 5. **获得简写**:在程序中,通过提取每个汉字拼音的首字母,可以自动生成简写。这在处理大量汉字时非常有用...

Global site tag (gtag.js) - Google Analytics