导航:首页 > 编程语言 > 姓名拆分为姓和名python

姓名拆分为姓和名python

发布时间:2024-05-13 18:09:04

python分析人数最多的姓氏

先收集常见姓氏列表,获取姓名的第一个字,然后在姓氏列表中匹配,如果找到那么姓氏就是这个字,如果没找到就尝试姓名前两个字,如果还没找到就尝试更多字(当然中国姓氏一般就两字,我还没见过两字以上的姓)或者手动辨别姓氏,然后把姓氏补充进列表。这种思路的问题在于复合姓可能会出问题,比如”司“和”司马“,脚本识别出的姓会是”司“。#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Python 版本需要为 3.5 以上

first_names = ('李', '王', '司', '司马')

def name_parser(name, first_name_count=1):
"""
分析姓名,返回姓和名的元组

:param str name: 姓名
:param int first_name_count: 姓氏长度,默认为1
:return: 姓和名的元组,如果没分析成功就返回空元组
:rtype: tuple
"""
if name[0:first_name_count] in first_names:
return (name[0:first_name_count], name[first_name_count:])
else:
return ()

if __name__ == '__main__':
# name.txt 需要为 UTF-8 编码,如果为其他编码,自行优化处理
with open('name.txt', 'r', encoding='utf-8') as f:
for i in f:
name = i.rstrip('\n')
# 最多尝试两字的姓
for n in range(1, 3):
s = name_parser(name, n)
if s:
print('{} 的姓氏为: {},名字为: {}.'.format(name, s[0], s[1]))
break
else:
print('未分析出 {} 的姓氏和名字,可能需要补充姓氏列表.'.format(name))

阅读全文

与姓名拆分为姓和名python相关的资料

热点内容
压缩干粮图片 浏览:836
怎么看网站被加密的视频 浏览:846
哪个app可以弄会动的照片模板 浏览:272
如何关闭电脑的时钟源服务器 浏览:902
adb命令设置主屏幕应用 浏览:990
编译后的bak文件 浏览:259
php生成文件名 浏览:880
日照智能车辆移动机器人导航算法 浏览:115
解压力的食疗 浏览:125
密钥如何加密随机数 浏览:381
统计学中pre的算法 浏览:411
inline函数在编译时不做类型检查 浏览:268
经纬度查询android 浏览:762
vivoz5x方舟怎么进服务器 浏览:498
vivox50安卓微信人脸支付怎么开启 浏览:895
cmd退出python命令 浏览:533
恢复u盘加密隐藏的文件 浏览:924
对某个人加密应该用公钥 浏览:1000
机顶盒中央1加密 浏览:98
单片机的出现有什么影响 浏览:231