應用場景之一:可用於獲取名字首字母,在資料庫中查詢記錄時,可以用它來排序輸出。
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個是按照拼音順序排列的。我們可以利用這個特徵,對常用...