导航:首页 > 编程语言 > 姓名拆分为姓和名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相关的资料

热点内容
对接云平台服务器 浏览:946
单片机555定时器 浏览:187
杭州青少年编程培训机构 浏览:288
咋样发文件夹 浏览:7
示教器编程过程 浏览:472
单片机硬件乘法器 浏览:246
androiddipdp区别 浏览:927
开机动画压缩包 浏览:64
怎么用obj文件编译 浏览:454
编程车斜面 浏览:554
鸟哥linux私房菜pdf 浏览:509
office编译错误找不到工程或库 浏览:733
运河pdf 浏览:715
cf如何在服务器获得角色信息 浏览:54
单片机步进电机速度 浏览:849
androidlauncher布局 浏览:146
女程序员收入 浏览:780
岩体力学pdf 浏览:50
同一个源码和笔记本运行不一致 浏览:763
if什么app 浏览:719