1. 程式人生 > >python獲取漢字的拼音

python獲取漢字的拼音

#coding:utf-8
#基於python2.6
table = 'a,-20319;ai,-20317;an,-20304;ang,-20295;ao,-20292;ba,-20283;bai,-20265;ban,-20257;bang,-20242;bao,-20230;bei,-20051;ben,-20036;beng,-20032;bi,-20026;bian,-20002;biao,-19990;bie,-19986;bin,-19982;bing,-19976;bo,-19805;bu,-19784;ca,-19775;cai,-19774;can,-19763;cang,-19756;cao,-19751;ce,-19746;ceng,-19741;cha,-19739;chai,-19728;chan,-19725;chang,-19715;chao,-19540;che,-19531;chen,-19525;cheng,-19515;chi,-19500;chong,-19484;chou,-19479;chu,-19467;chuai,-19289;chuan,-19288;chuang,-19281;chui,-19275;chun,-19270;chuo,-19263;ci,-19261;cong,-19249;cou,-19243;cu,-19242;cuan,-19238;cui,-19235;cun,-19227;cuo,-19224;da,-19218;dai,-19212;dan,-19038;dang,-19023;dao,-19018;de,-19006;deng,-19003;di,-18996;dian,-18977;diao,-18961;die,-18952;ding,-18783;diu,-18774;dong,-18773;dou,-18763;du,-18756;duan,-18741;dui,-18735;dun,-18731;duo,-18722;e,-18710;en,-18697;er,-18696;fa,-18526;fan,-18518;fang,-18501;fei,-18490;fen,-18478;feng,-18463;fo,-18448;fou,-18447;fu,-18446;ga,-18239;gai,-18237;gan,-18231;gang,-18220;gao,-18211;ge,-18201;gei,-18184;gen,-18183;geng,-18181;gong,-18012;gou,-17997;gu,-17988;gua,-17970;guai,-17964;guan,-17961;guang,-17950;gui,-17947;gun,-17931;guo,-17928;ha,-17922;hai,-17759;han,-17752;hang,-17733;hao,-17730;he,-17721;hei,-17703;hen,-17701;heng,-17697;hong,-17692;hou,-17683;hu,-17676;hua,-17496;huai,-17487;huan,-17482;huang,-17468;hui,-17454;hun,-17433;huo,-17427;ji,-17417;jia,-17202;jian,-17185;jiang,-16983;jiao,-16970;jie,-16942;jin,-16915;jing,-16733;jiong,-16708;jiu,-16706;ju,-16689;juan,-16664;jue,-16657;jun,-16647;ka,-16474;kai,-16470;kan,-16465;kang,-16459;kao,-16452;ke,-16448;ken,-16433;keng,-16429;kong,-16427;kou,-16423;ku,-16419;kua,-16412;kuai,-16407;kuan,-16403;kuang,-16401;kui,-16393;kun,-16220;kuo,-16216;la,-16212;lai,-16205;lan,-16202;lang,-16187;lao,-16180;le,-16171;lei,-16169;leng,-16158;li,-16155;lia,-15959;lian,-15958;liang,-15944;liao,-15933;lie,-15920;lin,-15915;ling,-15903;liu,-15889;long,-15878;lou,-15707;lu,-15701;lv,-15681;luan,-15667;lue,-15661;lun,-15659;luo,-15652;ma,-15640;mai,-15631;man,-15625;mang,-15454;mao,-15448;me,-15436;mei,-15435;men,-15419;meng,-15416;mi,-15408;mian,-15394;miao,-15385;mie,-15377;min,-15375;ming,-15369;miu,-15363;mo,-15362;mou,-15183;mu,-15180;na,-15165;nai,-15158;nan,-15153;nang,-15150;nao,-15149;ne,-15144;nei,-15143;nen,-15141;neng,-15140;ni,-15139;nian,-15128;niang,-15121;niao,-15119;nie,-15117;nin,-15110;ning,-15109;niu,-14941;nong,-14937;nu,-14933;nv,-14930;nuan,-14929;nue,-14928;nuo,-14926;o,-14922;ou,-14921;pa,-14914;pai,-14908;pan,-14902;pang,-14894;pao,-14889;pei,-14882;pen,-14873;peng,-14871;pi,-14857;pian,-14678;piao,-14674;pie,-14670;pin,-14668;ping,-14663;po,-14654;pu,-14645;qi,-14630;qia,-14594;qian,-14429;qiang,-14407;qiao,-14399;qie,-14384;qin,-14379;qing,-14368;qiong,-14355;qiu,-14353;qu,-14345;quan,-14170;que,-14159;qun,-14151;ran,-14149;rang,-14145;rao,-14140;re,-14137;ren,-14135;reng,-14125;ri,-14123;rong,-14122;rou,-14112;ru,-14109;ruan,-14099;rui,-14097;run,-14094;ruo,-14092;sa,-14090;sai,-14087;san,-14083;sang,-13917;sao,-13914;se,-13910;sen,-13907;seng,-13906;sha,-13905;shai,-13896;shan,-13894;shang,-13878;shao,-13870;she,-13859;shen,-13847;sheng,-13831;shi,-13658;shou,-13611;shu,-13601;shua,-13406;shuai,-13404;shuan,-13400;shuang,-13398;shui,-13395;shun,-13391;shuo,-13387;si,-13383;song,-13367;sou,-13359;su,-13356;suan,-13343;sui,-13340;sun,-13329;suo,-13326;ta,-13318;tai,-13147;tan,-13138;tang,-13120;tao,-13107;te,-13096;teng,-13095;ti,-13091;tian,-13076;tiao,-13068;tie,-13063;ting,-13060;tong,-12888;tou,-12875;tu,-12871;tuan,-12860;tui,-12858;tun,-12852;tuo,-12849;wa,-12838;wai,-12831;wan,-12829;wang,-12812;wei,-12802;wen,-12607;weng,-12597;wo,-12594;wu,-12585;xi,-12556;xia,-12359;xian,-12346;xiang,-12320;xiao,-12300;xie,-12120;xin,-12099;xing,-12089;xiong,-12074;xiu,-12067;xu,-12058;xuan,-12039;xue,-11867;xun,-11861;ya,-11847;yan,-11831;yang,-11798;yao,-11781;ye,-11604;yi,-11589;yin,-11536;ying,-11358;yo,-11340;yong,-11339;you,-11324;yu,-11303;yuan,-11097;yue,-11077;yun,-11067;za,-11055;zai,-11052;zan,-11045;zang,-11041;zao,-11038;ze,-11024;zei,-11020;zen,-11019;zeng,-11018;zha,-11014;zhai,-10838;zhan,-10832;zhang,-10815;zhao,-10800;zhe,-10790;zhen,-10780;zheng,-10764;zhi,-10587;zhong,-10544;zhou,-10533;zhu,-10519;zhua,-10331;zhuai,-10329;zhuan,-10328;zhuang,-10322;zhui,-10315;zhun,-10309;zhuo,-10307;zi,-10296;zong,-10281;zou,-10274;zu,-10270;zuan,-10262;zui,-10260;zun,-10256;zuo,-10254'

def Pinyin(num):
    global table
    if num>0 & num<160:
        return chr(num)
    v=table.split(';')
    for i in xrange(len(v)-1,-1,-1):
        s=v[i].split(',')
        if int(s[1])<=num:
            return s[0]
            break
    
if __name__ == "__main__": 
    chinese = '我是刺鳥 你是誰'
    i=0
    while(i<len(chinese)-1):
        p = ord(chinese[i:i+1])
        if(p>160):
            i+=1
            q = ord(chinese[i:i+1])
            p = p*256+q-65536
        i+=1
        print Pinyin(p)


  某專案,要實現支援通過拼音查詢指定關鍵詞的功能,最簡單的方法應該是在錄入資料的時候,把內容的拼音先獲取出來,一併儲存到資料庫,以便查詢。
    因此有了下面的def,不知道你是否有更高效的辦法呢?
執行結果:

相關推薦

python獲取漢字拼音

#coding:utf-8 #基於python2.6 table = 'a,-20319;ai,-20317;an,-20304;ang,-20295;ao,-20292;ba,-20283;bai,-20265;ban,-20257;bang,-20242;bao,-20

php獲取漢字拼音首字母的方法

emp tool iconv ace utf-8 comment 進行 adding padding 現實中我們經常看到這樣的說明,排名不分先後,按姓名首字母進行排序。這是中國人大多數使用的排序方法。那麽在php程序中該如何操作呢? 下面就分享一下在php程序中獲取漢字

Java獲取漢字拼音拼音縮寫

Java獲取漢字拼音和拼音縮寫 有時候,為了獲取更好的搜尋效果,我們需要通過拼音搜尋來實現漢字的匹配。現提供漢字轉拼音和拼音縮寫的方法如下: import net.sourceforge.pinyin4j.PinyinHelper; import net.so

mysql獲取漢字拼音首字母

DELIMITER $$ USE `test`$$ DROP FUNCTION IF EXISTS `getPY`$$ CREATE DEFINER=`root`@`%` FUNCTION `getPY`(in_string VARCHAR(255)) RETURNS VARCHAR(255)

在Excel中如何獲取漢字拼音首字母?

轉自:https://jingyan.baidu.com/article/0a52e3f43c3f6abf63ed7259.html百度經驗 在Excel中如何獲取漢字拼音首字母?|      在工作中,為了方便查詢、排序或者編碼,需要生成漢字內容

java springboot中獲取漢字拼音

第一步:pom.xml檔案中引入pinyin4j依賴 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <

獲取漢字拼音首字母類封裝

1、程式碼如下: 1 <?php 2 /** 3 * @file Pinyin.php 4 * @author whx https://www.cnblogs.com/whx-blogs/ 5 * @date 2018/12/03 18:32:18

Java獲取漢字拼音

為了配合模糊查詢 很多情況下 我們需要用到漢字首字母 進行模糊查詢, 這樣的例子很多, 做法也很多,有的是寫在資料庫中,有的是寫在java程式中 java程式中有 1. Java程式碼   package com.zkq.f

sqlserver 獲取漢字拼音首字母

create function [dbo].[fun_getPY](@str nvarchar(4000)) returns nvarchar(4000) as begin declare @word nvarchar(1),@PY nvarchar(4000) set @PY='' set @st

VC/MFC 獲取漢字拼音首字母(unicode編碼)

CString GetFirstLetter(LPCTSTR strName) { static int li_SecPosValue[] = { 1601, 1637, 1833, 2078, 2274, 2302, 2433,

C#_獲取漢字拼音

   我們在做系統是經常遇到需要通過漢字提取漢字拼音 的情況 ,我在網上搜集了幾種獲取方案包含了收首字母和完整拼音的獲取,供大家參考! 在此向原作者表示感謝! 如果權利侵犯,請通知刪除! 方案一:這個本人測試通過,最簡單 /// <summary>

delphi獲取漢字拼音首字母〖各版本通用〗

因為DELPHI 2009開始支援UNICODE,所以如果使用DELPHI7需要用記事本,批量替換AnsiString為string,AnsiChar為char,就可以完美支援DELPHI 2009以下版本,現在附上的程式碼是預設支援UNICODE的,DELPHI XE4環

Android 獲取漢字拼音

        Android提供了漢字轉拼音的類。但是這個類是在聯絡人app下的。具體目錄是packages/providers/ContactsProvider/src/com/android/providers/contacts的HanziToPinyin.java

Java獲取獲取漢字拼音和首字母程式碼

1、定義一個Bean: public class PinyinCode {  private String pinyin;  private int code;    public PinyinCode(String py, int cd) {   pinyin = py;

在vc中實現獲取漢字拼音的首字母

最近打算做一個基於字串首字元(漢字取拼音的首字母)進行查詢的電話簿WEB專案,由於Web本身並不支援漢字的編碼程式設計,因此需要求助於平臺開發工具。  Google上搜到一種實現方法,是用C++實現的。以下是原始碼:  void GetFirstLetter(CString

JAVA獲取漢字拼音首字母

ecp ascii碼 else chart || versions odin osc 支持 package com.common.util;import java.io.UnsupportedEncodingException; /** * 取得給定漢字串的首字母串,即

[python]獲取網頁中內容為漢字的字符串的判斷

vsr rbo ats art htm acad for swe lin IPerf%E2%80%94%E2%80%94%E7%BD%91%E7%BB%9C%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7%E4%BB%8B%E7%BB%8D%E4%B

JS實現獲取漢字首字母拼音、全拼音及混拼音的方法

pla 輸入 files sta add 參考 x11 lba odi 本文實例講述了JS實現獲取漢字首字母拼音、全拼音及混拼音的方法。分享給大家供大家參考,具體如下: 這裏需要用到一個js獲取漢字拼音的插件,可點擊此處本站下載。 運行效果如下: 完整示例代碼: ?

Python漢字拼音

 1.安裝pypinyin pip install pypinyin  2.具體程式碼如下 from pypinyin import pinyin,Style # # singer_dict = { # # "first": [{"name":

(轉)C# 獲取漢字拼音首字母和全拼(含原始碼)[A]

  https://blog.csdn.net/younghaiqing/article/details/62417269   C# 獲取漢字的拼音首字母 一種是把所有中文字元集合起來組成一個對照表;另一種是依照漢字在Unicode編碼表中的排序來確定拼音的首字母