Python 将全名拆分为两个变量,姓氏可能包含多个单词

标签 python python-3.x split

我有一个全名列表,目前我将其分成两个变量:

first, last = full_name.split(" ")

仅当 full_name 拆分时是两个单词时才有效,否则我得到。有没有一种简洁的方法来解释一个包含更多部分的名称,以将 first 作为第一个单词,将 last 作为其余单词?我可以用一两行额外的代码来完成,但我想知道是否有一种优雅的方法。

最佳答案

由于您使用的是 Python3,因此您还可以使用 Extended Iterable Unpacking .

例如:

name = "John Jacob Jingleheimer Schmidt"
first, *last = name.split()
print("First = {first}".format(first=first))
#First = John
print("Last = {last}".format(last=" ".join(last)))
#Last = Jacob Jingleheimer Schmidt

这会将拆分字符串的第一个元素之后的所有内容存储在 last 中。使用 "".join(last) 将字符串重新组合在一起。

如果只有两个元素要解包,它也适用。

name = "John Schmidt"
first, *last = name.split()
print("First = {first}".format(first=first))
#First = John
print("Last = {last}".format(last=" ".join(last)))
#Last = Schmidt

或者如果你想要第一个、中间的和最后一个:

name = "John Jacob Jingleheimer Schmidt"
first, middle, *last = name.split()
print("First = {first}".format(first=first))
#First = John
print("Middle = {middle}".format(middle=middle))
#Middle = Jacob
print("Last = {last}".format(last=" ".join(last)))
#Last = Jingleheimer Schmidt

关于Python 将全名拆分为两个变量,姓氏可能包含多个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49247636/

相关文章:

python - 使用在 python 对象中声明的 c++ std::mutex

python - 使用 map : A value is trying to be set on a copy of a slice from a DataFrame 时的 Pandas 警告

Python - 模拟导入字典

python - python用户名和密码恢复系统读取文件问题

ios - 当值长度== 1时,如何在值前添加 `0`

Python - 多个变量的子

python-3.x - 如何从Python列表中的CSV文件的单个单元格中写入单词集?

django - django 2.0 中的错误 404 静态文件

python - Python如何按字符拆分但保持该字符?

Python - 只打印少于五个字符的单词