python 小程序:转换阿拉伯数字到拼音

python上提供转换汉字到拼音的包有很多,但是好像都没有针对阿拉伯数字转化到拼音的方法,
我这里写了一个,供有需要的朋友参考。

函数 digi_to_py

输入字符串: ‘上海1943’、’1024’、’1949大江大海’ …
得到字符串: ‘上海 yi jiu si san’、’yi ling er si’、’yi jiu si jiu 大江大海’ ….

import re

def digi_to_py(word):
      digidict = {
        '1': u'yi', '2': u'er', '3': u'san', '4': u'si', '5': u'wu', 
        '6': u'liu', '7': u'qi', '8': u'ba', '9': u'jiu', '0': u'ling'
        }
      patten = '([0-9]{1})'
      for i in word:
           if re.search(patten, i):
                py = digidict[i]
                word = word.replace(i, (u' ' + py + u' '))
     return word

之后再使用其他汉字转拼音函数,即可得到不包含阿拉伯数字的完全的拼音字符串。

这样就避免了在按字母顺序排列的场合中,阿拉伯数字开头的item优先的情况。 具体实例:http://liyuwiki.com/577297.html
如不经过这一步转化 “1024”这样的词条就排到所有条目的前面去。

补充:
这个函数可以重写,直接用key匹配目标,,而不必使用正则表达式。

Published: 2014-06-24

  • category:
  • tags: