如何在Python中将全名拆分为名字和姓氏?

问题描述 投票:0回答:8

我是 python 编程新手,我正在尝试将全名拆分为名字和姓氏,有人可以帮助我吗?所以我的示例文件是:

莎拉·辛普森

我期望这样的输出:Sarah,Simpson

python-3.x string split
8个回答
2
投票

您可以像这样使用

split()
函数:

fullname=" Sarah Simpson"
fullname.split()

这会给你:

['Sarah', 'Simpson']


在此基础上,您可以:

first=fullname.split()[0]
last=fullname.split()[-1]
print(first + ',' + last)

这会给你

Sarah,Simpson
,没有空格


2
投票

这很方便:nameparser 1.0.6 - https://pypi.org/project/nameparser/

>>> from nameparser import HumanName
>>> name = "Sarah Simpson"
>>> name = HumanName(name)
>>> name.last
'Simpson'
>>> name.first
'Sarah'
>>> name.last+', '+name.first
'Simpson, Sarah'

1
投票

您可以尝试

.split()
函数,该函数在按分隔符分割后返回字符串列表。在这种情况下,分隔符是空格字符。

首先使用

.strip()
删除前导和尾随空格,然后用分隔符分隔。

first_name, last_name=fullname.strip().split()

1
投票

Python 中的字符串是不可变的。创建一个新字符串以获得所需的输出。 您可以使用字符串类的split()方法。

name = "Sarah Simpson"
name.split()

split()默认在空格上分割,并以分隔符作为参数。它返回一个列表

["Sarah", "Simpson"]

只需连接字符串即可。更多参考https://docs.python.org/3.7/library/stdtypes.html?highlight=split#str.split

Output = "Sarah", "Simpson"

 

0
投票

名称=“托马斯·温特” 姓氏 = name.split()[1] (注意函数调用 split 上的括号。)

split() 创建一个列表,其中每个元素都来自原始字符串,并以空格分隔。您现在可以使用 name.split()[1] 获取第二个元素,或使用 name.split()[-1] 获取最后一个元素


0
投票

split()
显然是值得追求的功能 - 可以带一个参数或 0 个参数

fullname="Sarah Simpson"
ls=fullname.split()
ls=fullname.split(" ") #this will split by specified space

额外可选

如果您希望拆分名称显示为以逗号分隔的字符串,则可以使用

join()
replace

print(",".join(ls))  #outputs Sarah,Simpson
print(st.replace(" ",","))

0
投票

输入:Sarah Simpson => 假设它是一个字符串。 然后,输出:Sarah,Simpson。执行以下操作:

name_surname = "Sarah Simpson".split(" ")
to_output = name_surname[0] + ", " + name_surname[-1]
print(to_output)

函数 split 对字符串执行,以通过传递给它的指定参数来分割它。然后它输出所有被分割的字符或单词的列表。 在您的情况下:字符串是“Sarah Simpson”,因此,当您使用参数“”-空空格-执行 split 时,输出将是:[“Sarah”,“Simpson”]。

现在,要组合名称或访问其中的任何名称,您可以使用包含要返回的所需单词的索引的方括号将列表名称右侧。例如:name_surname[0] 将输出“Sarah”,因为它在列表中的索引为 0。


0
投票

这是我针对可能的多个名字(如“Amy Farrah Fowler”)的解决方案。

name = "Amy Farrah Fowler"
wordlist = name.split()
surname = wordlist[-1]
firstnames = ' '.join(wordlist[:-1])

print(f"{surname}, {firstnames}")

# output: Fowler, Amy Farrah
© www.soinside.com 2019 - 2024. All rights reserved.