當前位置:編程學習大全網 - 編程軟體 - python分析人數最多的姓氏

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))

  • 上一篇:保時捷911顯示12v電壓已斷開什麽意思
  • 下一篇:從CAD導出EPS文件後,如何用PS做銅門效果的詳細教程在書中。
  • copyright 2024編程學習大全網