七、python排序之先按汉语拼音排序再按笔画排序

首先安装pypinyin第三方库,参见 ↩ \hookleftarrow

from pypinyin import lazy_pinyin,Style
ji = ['中','国','人','日','本','韓','学','生','先','留','教','授','社','員','会','店','研','修','企','業','大','父','課','長','出','迎','李','王','張','森','林','小','野','吉','田','村','太','郎','金','東','京','画','旅','行','商','事','分','君','外','語','英','陸','北','南','鉛','筆','傘','靴','新','聞','雑','誌','辞','書','電','話','机','時','計','手','帳','写','真','車','自','転','名','産','品','方','家','族','母','何','島','歳','零','一','二','三','四','五','六','七','八','九','十','百','両','親','娘','嬢','兄','弟','姉','妹','食','堂','郵','便','局','銀','図','館','喫','茶','病','院','屋','建','物','売','場','入','口','務','所','受','付','服','地','隣','周','辺','水','曜','木','階','円','千','万','庭','居','間','冷','蔵','庫','壁','棚','猫','犬','箱','子','供','男','女','徒','上','下','前','後','近','室','議','公','園','花','駅','鉄','暮','横','浜','古','坂','映','美','術','体','育','博','動','遊','空','港','市','役','消','防','署','警','察','交','番','工','劇','駐','校','肉','魚','床','薬','玄','関','廊','浴','洗','面','台','寝','和','根','窓','板','包','丁','用','剤','布','巾','流','蛇','鍋','器','鏡','歯','濯','機','乾','燥','重','枕','掛','団','気','目','覚','障','押','襖','座','畳','今','週','来','毎','朝','晩','午','月','火','土','年','去','夜','試','験','仕','遅','刻','休','展','覧','歓','宅','働','始','終','起','勉','強','支','神','戸','半','誕','夏','通','幹','線','飛','友','達','帰','佐','藤','広','都','海','道','渋','谷','宿','疲','様','失','礼','歩','変','粥','昼','飯','弁','当','丼','卵','球','申','込','紙','音','楽','飲','買','撮','','読','見','掃','除','邪','魔','開','顔','磨','髪','着','吸','閉','切','符','類','送','資','料','作','払','脱','理','頭','記','念','表','集','題','航','速','号','住','件','麦','粉','夕','届','貸','習','借','度','陳','願','玉','焼','氷','紅','牛','乳','緑','酒','天','定','味','噌','汁','好','刺','身','寿','司','饂','鈍','煮','炒','揚','蒸','饅','宝','菜','川','温','泉','湯','眺','山','性','客','歌','舞','伎','持','辛','甘','塩','酸','苦','熱','狭','忙','悪','遠','高','低','安','寒','暑','青','白','難','易','多','少','全','然','門','里','城','故','郷','町','形','彫','具','菓','観','光','部','平','活','世','界','晴','雨','曇','雪','汚','有','静','暇','嫌','利','不','元','簡','単','奈','良','富','士','候','予','報','降','確','率','湿','風','霧','雷','虹','暖','涼','絵','泳','運','果','結','婚','式','別','荘','寄','細','模','脚','迷','散','怖','赤','痛','構','季','節','冬','春','酎','席','種','背','最','若','札','幌','仙','潟','沢','知','崎','福','岡','那','覇','秋','葉','原','霞','池','袋','連','津','西','武','漢','慶','成','州','紹','興','桂','昆','明','街','文','房','催','紳','婦','化','粧','内','案','帽','駄','指','輪']
yomu = ['ちゅう、なか、じゅう','こく、くに','じん、ひと、にん','にち、ひ、じつ','ほん','かん','がく','せい、しょう','せん、さき','りゅう','きょう、おし(え)','じゅ','しゃ','いん','かい、あ(う)','てん、みせ','けん','しゅ','き','ぎょう','だい、たい、おお(き)','ちち','か','ちょう、なが','で、しゅつ、だ(す)','むか(え)、げい','り','おう','ちょう','もり','はやし、りん','お、こ、ちい(さ)','の、や','よし','た','むら','た、ふと(る)','ろう','キム、きん、かね、かな','とう','きょう','かく、が','りょ','こう、い(く)','しょう','じ、こと','わ(か)、ふん','くん','がい、そと','ご','えい','りく','きた、ほく','みなみ','えん','ぴつ','かさ','くつ','しん、あたら(し)、にい','ぶん、き(く)','ざつ','し','じ','しょ、か(く)','でん','わ','つくえ','とき、じ','けい','て、ず','ちょう','しゃ','しん','くるま、しゃ','じ','てん','めい、な','さん','ひん、しな','かた','か、いえ','ぞく','はは','なん','しま','さい','れい、ゼロ','いち','に','さん','し、よん','ご','ろく','しち、なな','はち','く、きゅう','じゅう','ひゃく','りょう','しん、おや','むすめ','じょう','きょう、あに','だい、おとうと','あね','いもうと','しょく、た(べ)','どう','ゆう','びん、べん','きょく','ぎん','と、ず','かん','きつ','さ、ちゃ','びょう','いん','や、おく','たて','もの、ぶつ','う、ばい','ば、じょう','い(り)、い(れ)','くち','む','しょ、ところ','う(け)','つ(け)','ふく','ち','となり','しゅう','へん','すい、みず','よう','もく、き','かい','えん','せん','まん、ばん','にわ','い','ま、かん','れい、つめ(た)','ぞう','こ','かべ','たな','なこ','いぬ','はこ','こ、し','とも','おとこ','おんな、じょ','と','うえ、じょう','した、か、げ','まえ、ぜん','うし、ご','ちか、きん','しつ','ぎ','こう','えん','はな','えき','てつ','く','よこ','はま','こ、ふる','さか','えい','び','じゅつ','たい、からだ','いく','はく','どう','ゆう','くう','こう','し','やく','しょう、け(す)','ぼう','しょ','けい','さつ','こう','ばん','こう、く','げき','ちゅう','こう','にく','さかな','とこ','やく、くすり','げん','かん、せき','ろう','よく、あび','せん、あら(う)','めん','だい、たい','しん、ね','わ','ね','まど','いた','ほう','ちょう','よう','ざい','ふ','きん','なが','じゃ','なべ','き','かがみ','は','たく','き','かん','そう','じゅう','まくら','か','とん','き','め','さ','しょう','お','ふすま','ざ','たたみ','いま、こん','しゅう','らい、く・き','まい','あさ','ばん','ご','げつ、がつ、つき','か','ど','ねん、とし','きょ','よる、よ','し','けん','し','ち','こく','やす(む)','てん','らん','かん','たく','はたら(く)','はじま(り)','おわ(り)','おき','べん','きょう','し','こう','べ','はん','たん','なつ','つう、とお','かん','せん','ひ','とも','たち、たつ','かえ(り)','さ','とう','ひろ、こう','と','かい、うみ','どう','しぶ','や','しゅく','つか(れ)','さま、よう','しつ','れい','ある(く)、ぽ','へん','かゆ','ひる','はん','べん','とう','どん','たまご','きゅう','もう(す)','こ(む)','かみ、し','おん','がく、たの','の(む)','か(う)','と(る)','','よ(む)','み','そう','じ','じゃ','ま','あけ','かお','みが(く)','かみ','き、ちゃく','す(う)','し(め)','き(る)、せつ','ふ','るい','おく(る)','し','りょう','つく(る)、さく','はら(う)','ぬ(げ)','り','あたま','き','ねん','ひょう','しゅう','だい','こう','そく、はや','ごう','じゅう','けん','むぎ','こ','ゆう','とど(く)','か(す)','なら(う)','か(り)','ど','ちん','ねが','たま','や(く)、しょう','ごおり','こう','ぎゅう','にゅう','りょく','しゅ、さけ','てん','てい','み','そ','しる','この、す(き)','さ','み','す','し','う','どん','に','いた(め)','あ(げ)','む(す)','まん','ほう','さい','せん、かわ','おん','せん','ゆ','なが(め)','やま、さん','せい','きゃく','か、うた','ぶ','き','も(つ)','から','あま','しお','す','にが','あつ','せま','いそが(し)','わる','とお','たか、こう','ひく','やす、あん','さむ','あつ','あお','しろ','むずか(し)','やさ(し)','おお','すく(な)、すこ','ぜん','ぜん','もん','り','じょう','こ','きょう','まち','ぎょう','ちょう','ぐ','か','かん','こう','ぶ','へい','かつ','せ','かい','は(れ)','あめ','くも(り)','ゆき','きたな','ゆう','しず(か)','ひま','きら','り','ふ','げん','かん','たん','な','ら','ふ','し','こう','よ','ほう','こう、ふ(り)','かく','りつ','しつ','ふう、かぜ','きり','かみなり','にじ','あたた(か)','すず(し)','え','えい','うん','くだ','けち','こん','しき','べつ','そう','よ(せ)','さい','も','あし','まよ(う)','さん','こわ','あか','いた','こう','き','せつ','ふゆ','はる','ちゅう','せき','しゅ','せ','さい','わか','さつ','ほろ','せん','かた','さわ','ち','さき','ふく','おか','な','は','あき','は','はら','かすみ','いけ','ふくろ','れん','しん','せい','ぶ','かん','けい','せい','しゅう','しょう','こう','けい','こん','めい','がい','ぶん','ぼう','さい','しん','ふ','け','しょう','ない','あん','ぼう','た','ゆび','わ']

列表的处理方法,参见 ↩ \hookleftarrow 附录部分

jis = []
for i in range(len(ji)):
    jis.append(ji[i] + '[' + yomu[i] + ']')
    i += 1
print(sorted(jis,key = lambda x:(lazy_pinyin(x[0],style = Style.TONE3,neutral_tone_with_five = True),sorted(x))))

pypinyin是一个可以把汉字(字符串格式)转换成拼音的库,pinyin('汉字')方法生成一个对应长度的列表,这是为了应对多音字以生成嵌套列表;lazy_pinyin('汉字')方法不考虑多音字,只生成非嵌套对应长度列表。参数Style用于控制输出格式,TONE3为拼音末以数字标注声调的格式(['han4', 'zi4']),默认格式无声调(['han', 'zi'])。开启neutral_tone_with_five = True选项可以把轻声标注为数字5,否则轻声将无数字显示。
最后使用k = lambda x:(x1, x2)先按汉语拼音排序,再按默认(笔画)排序即可。

    原文作者:qixuanmiao
    原文地址: https://blog.csdn.net/qixuanmiao_/article/details/119959491
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞