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

热点内容
三台服务器配置IP地址 浏览:171
如何用命令方块连续对话 浏览:274
win7linux共享文件夹 浏览:301
命令符打开本地服务 浏览:597
android应用程序源码 浏览:699
安卓开发工程师简历怎么写 浏览:57
热水器水量服务器是什么意思 浏览:115
stk卫星编译 浏览:477
对后台程序员的要求 浏览:759
ios大文件夹图标 浏览:624
生的计划pdf 浏览:711
oppoa93加密便签在哪查找 浏览:19
两个数字的加减乘除运算编程 浏览:227
给手机加密码忘记了怎么办 浏览:601
单片机运算符 浏览:297
移动端微信商城源码 浏览:443
编程猫下一个背景在哪里 浏览:358
javaclasstype 浏览:239
乐高编程和乐高课的延伸 浏览:357
苹果手机怎么切换app美国账号 浏览:865