python获取汉字首字母 - Go语言中文社区

python获取汉字首字母


应用场景之一:可用于获取名字首字母,在数据库中查询记录时,可以用它来排序输出。


from pytz import unicode

# 获取汉字首字母
def multi_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_list.append(single_get_first(one_unicode))
	return return_list

def single_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:
		if type(i).__name__ =='bytes':
        	i = i.decode()
		res = res+i
	print(res)

if __name__ == "__main__":
	str_input=u'世界欢迎你'
	main(str_input)

输出:
sjhyn
这里写图片描述
【更新说明】
现在已经出现一个专门把汉子转拼音的库pypinyin,直接导入这个库使用就行了
pip install pypinyin

from pypinyin import pinyin, lazy_pinyin


def get_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

【后记】:如果文章对您有帮助,打赏下呗。微信 1257309054,欢迎交流学习*_*
微信
在这里插入图片描述
支付宝
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/lm_is_dc/article/details/80547534
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 17:46:57
  • 阅读 ( 1018 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢