Python 分裂一个人';s的名字分为名字和姓氏
基本上我是在问他们的名字 我希望这是一个输入,而不是名字和姓氏 现在有办法把这个名字分开吗?从“句子”中只取最后一个词 输出的只是像这样的“冬天”:Python 分裂一个人';s的名字分为名字和姓氏,python,split,Python,Split,基本上我是在问他们的名字 我希望这是一个输入,而不是名字和姓氏 现在有办法把这个名字分开吗?从“句子”中只取最后一个词 输出的只是像这样的“冬天”: print name.split()[-1] 像这样: print name.split()[-1] 您可能希望为此使用rsplit: rsplit([sep [,maxsplit]]) 使用sep作为分隔符字符串,返回字符串中的单词列表。如果给定了maxplit,则最多执行maxplit拆分,最右边的拆分。如果未指定sep或None,则任何
print name.split()[-1]
像这样:
print name.split()[-1]
您可能希望为此使用rsplit:
rsplit([sep [,maxsplit]])
使用
sep
作为分隔符字符串,返回字符串中的单词列表。如果给定了maxplit
,则最多执行maxplit
拆分,最右边的拆分。如果未指定sep
或None
,则任何空白字符串都是分隔符。除了从右侧拆分外,rsplit()
的行为类似于split()
,下面将对其进行详细描述。版本2.4中的新功能 您可能希望为此使用rsplit:
rsplit([sep [,maxsplit]])
使用
sep
作为分隔符字符串,返回字符串中的单词列表。如果给定了maxplit
,则最多执行maxplit
拆分,最右边的拆分。如果未指定sep
或None
,则任何空白字符串都是分隔符。除了从右侧拆分外,rsplit()
的行为类似于split()
,下面将对其进行详细描述。版本2.4中的新功能 尝试从单个输入中分离姓名的问题在于,对于姓氏中有空格的人,您无法获得完整的姓氏,我认为您无法编写代码来完全管理这些姓氏
如果可能的话,我建议您单独询问姓名。尝试从单个输入中分割姓名的问题是,您无法获得姓氏中有空格的人的完整姓氏,我不相信您能够编写代码来完全管理它
如果可能的话,我建议您单独询问姓名。拆分姓名比看起来更难。有些名字有两个字的姓;有些人会输入名字、中间名和姓氏;有些名字有两个工作名。处理姓名的更可靠(或最不可靠)的方法是始终在单独的字段中捕获名字和姓氏。当然,这也带来了它自己的问题,比如如何处理只有一个名字的人,确保它适用于名称部分顺序不同的用户
名字很难,小心处理。拆分名字比看起来更难。有些名字有两个字的姓;有些人会输入名字、中间名和姓氏;有些名字有两个工作名。处理姓名的更可靠(或最不可靠)的方法是始终在单独的字段中捕获名字和姓氏。当然,这也带来了它自己的问题,比如如何处理只有一个名字的人,确保它适用于名称部分顺序不同的用户
名字很硬,小心轻放。。但是,用这种东西进行数据规范化确实是一个难题。我同意戴夫·杜普兰蒂斯关于要求单独输入的观点。。但是,用这种东西进行数据规范化确实是一个难题。我同意戴夫·杜普兰蒂斯(Dave DuPlantis)关于要求单独输入的观点。你会发现,这种方法的关键问题不是技术问题,而是人的问题——不同的人用不同的方式写自己的名字 事实上,“名字”和“姓氏”这两个术语本身就是有缺陷的 虽然许多混合家庭使用连字符的姓氏,如Smith Jones,但也有一些家庭只单独使用两个名字,“Smith Jones”,其中两个名字都是姓氏 许多欧洲姓氏有多个部分,如“de Vere”和“van den Neiular”。有时这些临时演员有重要的家族史——例如,几百年前国王授予他们的前缀 附带问题:我已经为我所指的人正确地大写了这些字母——“de”和“van den”在某些家庭中没有大写字母,但在其他家庭中有大写字母 相反,许多亚洲文化把姓氏放在首位,因为家庭被认为比个人更重要 最后一点——有些人非常看重“初级”或“高级”或“三级”——你的代码不应该把他们当作姓氏 还注意到有相当多的人使用的名字不是他们父母给的,我使用了以下方案并取得了一些成功: 全名(通常写在邮件地址上); 姓氏; 被称为(对话中常用的名称) e、 g: 全名:威廉·盖茨三世;姓:盖茨;被称为:比尔
全名:宋力,;姓宋,;你会发现这种方法的关键问题不是技术问题,而是人的问题——不同的人用不同的方式写自己的名字 事实上,“名字”和“姓氏”这两个术语本身就是有缺陷的 虽然许多混合家庭使用连字符的姓氏,如Smith Jones,但也有一些家庭只单独使用两个名字,“Smith Jones”,其中两个名字都是姓氏 许多欧洲姓氏有多个部分,如“de Vere”和“van den Neiular”。有时这些临时演员有重要的家族史——例如,几百年前国王授予他们的前缀 附带问题:我已经为我所指的人正确地大写了这些字母——“de”和“van den”在某些家庭中没有大写字母,但在其他家庭中有大写字母 相反,许多亚洲文化把姓氏放在首位,因为家庭被认为比个人更重要 最后一点——有些人非常看重“初级”或“高级”或“三级”——你的代码不应该把他们当作姓氏 还要注意的是,有相当多的人使用的名字并不是政府赋予的
import re
p = re.compile(r'^(\s+)?(Mr(\.)?|Mrs(\.)?)?(?P<FIRST_NAME>.+)(\s+)(?P<LAST_NAME>.+)$', re.IGNORECASE)
m = p.match('Mr. Dingo Bat')
if(m != None):
first_name = m.group('FIRST_NAME')
last_name = m.group('LAST_NAME')
def get_first_name(fullname):
firstname = ''
try:
firstname = fullname.split()[0]
except Exception as e:
print str(e)
return firstname
def get_last_name(fullname):
lastname = ''
try:
index=0
for part in fullname.split():
if index > 0:
if index > 1:
lastname += ' '
lastname += part
index += 1
except Exception as e:
print str(e)
return lastname
def get_last_word(string):
return string.split()[-1]
print get_first_name('Jim Van Loon')
print get_last_name('Jim Van Loon')
print get_last_word('Jim Van Loon')
name = "Thomas Winter"
first, last = name.split()
print("First = {first}".format(first=first))
#First = Thomas
print("Last = {last}".format(last=" ".join(last)))
#Last = Winter
x=input("enter your name ")
l=x.find(" ")
print("your first name is",x[:l])
print("your last name is",x[l:])