关于中文按照拼音排序

array('鑫','鹭','榕','柘','珈','骅','孚','迦','瀚','濮','浔','沱','泸','恺','怡','岷','萃','兖')

这个数组里的中文求按拼音首字母排序

阅读 7.5k
5 个回答

发现一个php的函数 叫collator_sort(),可以排序,但是如果是联动排序就比较麻烦,之前做的东西是通过array_multisort联动排序的

Python 的話可以利用 pypinyin:

from pypinyin import lazy_pinyin

chars = ['鑫','鹭','榕','柘','珈','骅','孚','迦','瀚','濮','浔','沱','泸','恺','怡','岷','萃','兖']

chars.sort(key=lambda char: lazy_pinyin(char)[0][0])

print([lazy_pinyin(char) for char in chars])
print(chars)

結果:

[['cui'], ['fu'], ['hua'], ['han'], ['jia'], ['jia'], ['kai'], ['lu'], ['lu'], ['min'], ['pu'], ['rong'], ['tuo'], ['xin'], ['xun'], ['yi'], ['yan'], ['zhe']]
['萃', '孚', '骅', '瀚', '珈', '迦', '恺', '鹭', '泸', '岷', '濮', '榕', '沱', '鑫', '浔', '怡', '兖', '柘']

以上排序 僅按拼音首字母 排序


我回答過的問題: Python-QA

转成gbk编码,然后用任意排序算法即可

pinyin4j

应该可以算出每个汉字的首字母,应该有这种封装好的类,看你用什么语言了,然后在进行排序

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题