第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 Python 將名字拆分為名字、中間名和姓氏

使用 Python 將名字拆分為名字、中間名和姓氏

MMTTMM 2024-01-04 15:40:16
所以我基本上要求我有一個(gè)名字,我需要將它分成三個(gè)部分,并使用 Python 將其存儲(chǔ)到三個(gè)不同的變量中。例如:姓名=“約翰·韋恩·史密斯”那么期望的輸出應(yīng)該是:名字=約翰中間名=韋恩姓氏 = 史密斯另外,我想檢查一下,如果某個(gè)人的中間名不存在,那么它應(yīng)該是空白的。
查看完整描述

5 回答

?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

nameparse是您問題的完美解決方案。您可以通過以下方式安裝它

pip 安裝名稱解析器

在您的代碼中,將此庫導(dǎo)入為:

from nameparser import HumanName


name = "John Wayne Smith"

name_parts = HumanName(name)

name_parts.title

name_parts.first

name_parts.middle

name_parts.last

name_parts.suffix

name_parts.nickname

name_parts.surnames  # (middle + last)

name_parts.initials  # (first initial of each name part)


查看完整回答
反對(duì) 回復(fù) 2024-01-04
?
喵喔喔

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用 split 函數(shù)創(chuàng)建包含名稱的列表 第一個(gè)是名字 第二個(gè)是您的姓氏(如果名稱長度等于 2)


names =Name.split()

if len(names) ==2 :

 print("there is no middle name")

 first_name = names[0]

 last_name = names[1]

 print(f" first name - {first_name}\n  middle name -  last name - {last_name}")

elif len(names) == 3:

 print("there is  middle name")

 first_name = names[0]

 middle_name = names[1]

 last_name = names[2]

 print(f" first name - {first_name}\n middle name - {middle_name} \nlast name - {last_name}")



查看完整回答
反對(duì) 回復(fù) 2024-01-04
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

我們可以使用以下正則表達(dá)式:


(?P<First>\S+)\s(?:(?P<Middle>\S*)\s)?(?P<Last>\S+)$

它查找名字和姓氏,以及可選的中間名。


例子


import re


s = "John Wayne Smith"

s2 = "John Smith"


p = re.compile(r"(?P<First>\S+)\s(?:(?P<Middle>\S*)\s)?(?P<Last>\S+)$")

p.match(s).groupdict()

# {'First': 'John', 'Middle': 'Wayne', 'Last': 'Smith'}


p.match(s2).groupdict()

# {'First': 'John', 'Middle': None, 'Last': 'Smith'}

請(qǐng)注意,match將從頭到尾匹配整個(gè)字符串。請(qǐng)確保事先清理并驗(yàn)證您的輸入,因?yàn)檎齽t表達(dá)式對(duì)于它們不期望的輸入有些脆弱。


查看完整回答
反對(duì) 回復(fù) 2024-01-04
?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

您可以使用str.split并len檢查結(jié)果:


name = "John Wayne Smith"

parts = name.split(maxsplit=3)

if len(parts) == 3:

    first, middle, last = parts

else:

    first = parts[0]

    middle = ""

    last = parts[-1]

print([first, middle, last])


查看完整回答
反對(duì) 回復(fù) 2024-01-04
?
開心每一天1111

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊

Python 有一個(gè)稱為“解包”的功能,它允許您從列表中解構(gòu)對(duì)象。有問題的列表來自調(diào)用split字符串上的方法。它需要一個(gè)字符串來分割。要解包,您必須具有以下形式的聲明[a, b, c] = list,其中 a、b 和 c 是您希望解包(按順序)的對(duì)象。所以你的代碼是

[first, middle, last] = 'John Wayne Smith'.split(' ')


查看完整回答
反對(duì) 回復(fù) 2024-01-04
  • 5 回答
  • 0 關(guān)注
  • 424 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)