導航:首頁 > 編程語言 > 姓名拆分為姓和名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相關的資料

熱點內容
臨時文件夾怎麼轉到其他盤 瀏覽:175
android布局按比例 瀏覽:598
安卓模擬器怎麼能當手機用 瀏覽:880
手機怎樣查看伺服器ip地址沖突 瀏覽:810
程序員有沒有必要找家教 瀏覽:781
什麼編譯器可以帶c11函數 瀏覽:18
如何理解程序員對自己電腦的感情 瀏覽:525
什麼是簡訊app 瀏覽:752
我的世界伺服器啟動器下載地址 瀏覽:790
雲伺服器公ip和內ip 瀏覽:948
手機淘寶app授權在哪裡 瀏覽:472
匯編程序的任務 瀏覽:973
dji編程玩具 瀏覽:21
dcs伺服器異常現象是什麼 瀏覽:201
java中的布局 瀏覽:702
單片機作業三 瀏覽:161
古代分數運演算法則 瀏覽:154
電腦大文件夾查找方法 瀏覽:938
什麼app可以買國外衣服 瀏覽:385
媽媽吃了命令葯丸 瀏覽:714