python的拼音_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

安顺 北海 北京 长春 长沙 成都 大连 德阳 东莞 佛山 福州 广州 贵阳 海口 杭州 合肥

济南 昆明 兰州 南昌 南京 南宁 青岛 厦门 上海 深圳 沈阳 太仓 太原 天津 乌鲁木齐

芜湖 武汉 西安 徐州 扬州 岳阳 肇庆 重庆

'''

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值