python獲取漢字首字母

2021-08-20 10:40:42 字數 3973 閱讀 7561

應用場景之一:可用於獲取名字首字母,在資料庫中查詢記錄時,可以用它來排序輸出。

from pytz import

unicode

# 獲取漢字首字母

defmulti_get_letter

(str_input):if

isinstance

(str_input,

unicode):

unicode_str = str_input

else

:try

: unicode_str = str_input.decode(

'utf8'

)except

:try

: unicode_str = str_input.decode(

'gbk'

)except

:print

('unknown coding'

)return

return_list =

for one_unicode in unicode_str:

)return return_list

defsingle_get_first

(unicode1)

: str1 = unicode1.encode(

'gbk'

)# print(len(str1))

try:

ord(str1)

return str1

except

: asc = str1[0]

*256

+ str1[1]

-65536

# print(asc)

if asc >=

-20319

and asc <=

-20284

:return

'a'if asc >=

-20283

and asc <=

-19776

:return

'b'if asc >=

-19775

and asc <=

-19219

:return

'c'if asc >=

-19218

and asc <=

-18711

:return

'd'if asc >=

-18710

and asc <=

-18527

:return

'e'if asc >=

-18526

and asc <=

-18240

:return

'f'if asc >=

-18239

and asc <=

-17923

:return

'g'if asc >=

-17922

and asc <=

-17418

:return

'h'if asc >=

-17417

and asc <=

-16475

:return

'j'if asc >=

-16474

and asc <=

-16213

:return

'k'if asc >=

-16212

and asc <=

-15641

:return

'l'if asc >=

-15640

and asc <=

-15166

:return

'm'if asc >=

-15165

and asc <=

-14923

:return

'n'if asc >=

-14922

and asc <=

-14915

:return

'o'if asc >=

-14914

and asc <=

-14631

:return

'p'if asc >=

-14630

and asc <=

-14150

:return

'q'if asc >=

-14149

and asc <=

-14091

:return

'r'if asc >=

-14090

and asc <=

-13119

:return

's'if asc >=

-13118

and asc <=

-12839

:return

't'if asc >=

-12838

and asc <=

-12557

:return

'w'if asc >=

-12556

and asc <=

-11848

:return

'x'if asc >=

-11847

and asc <=

-11056

:return

'y'if asc >=

-11055

and asc <=

-10247

:return

'z'return

''def

main

(str_input)

: list1 = multi_get_letter(str_input)

res =

''for i in list1:

iftype

(i).__name__ ==

'bytes'

: i = i.decode(

) res = res+i

print

(res)

if __name__ ==

"__main__"

: str_input=u'世界歡迎你'

main(str_input)

輸出:

現在已經出現乙個專門把漢子轉拼音的庫pypinyin,直接匯入這個庫使用就行了

pip install pypinyin

from pypinyin import pinyin, lazy_pinyin

defget_acronym

(str_data)

:"""

獲取字串的首字母

:param str_data: 字串

:return: 字串

"""return

"".join(

[i[0][

0]for i in pinyin(str_data)])

if __name__ ==

'__main__'

:print

('拼音'

, lazy_pinyin(

'婺城區'))

print

('拼音'

, pinyin(

'䆔')

)print

("首字母"

, get_acronym(

'䆔心坡'

))

輸出:

拼音 [

'wu'

,'cheng'

,'qu'

]拼音 [

['chōng']]

首字母 cxp

關注我,我們一起成長~~

java獲取漢字首字母

public class chinesefcutil 二十六個字母區間對應二十七個端點 gb2312碼漢字區間十進位制表示 private static int table new int 27 對應首字母區間表 private static char initialtable 初始化 static...

C 獲取漢字首字母

1 2 在指定的字串列表cnstr中檢索符合拼音索引字串 3 4 漢字字串 5 相對應的漢語拼音首字母串 6public static string getspellcode string cnstr 7 16 17return strtemp 18 1920 21 22 得到乙個漢字的拼音第乙個字...

漢字首字母

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入 bj 就可以定位到 北京 怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於 對每個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用...