当前位置:  开发笔记 > 编程语言 > 正文

将一个人的名字拆分为姓氏和姓氏

如何解决《将一个人的名字拆分为姓氏和姓氏》经验,为你挑选了5个好方法。

好吧基本上我问的是他们的名字问题我希望这是一个输入而不是Forename和Surname.

现在有什么方法可以拆分这个名字吗?并从"句子"中取出最后一句话,例如

name = "Thomas Winter"
print name.split() 

什么输出只是"冬天"



1> Bevan..:

你会发现这种方法的关键问题不是技术问题,而是人类问题 - 不同的人用不同的方式写出自己的名字.

事实上,"姓"和"姓"的术语本身就存在缺陷.

虽然许多混合家庭使用带连字符的姓氏,例如Smith-Jones,但有些人只是单独使用这两个名字,"Smith Jones",其中两个名字都是姓氏.

许多欧洲家族的名字有多个部分,例如"de Vere"和"van den Neiulaar".有时这些额外的东西有重要的家族历史 - 例如,几百年前由国王授予的前缀.

侧面问题:我已经正确地将这些资本化为我所引用的人 - "de"和"van den"不会为某些家庭获得大写字母,而是为其他人做.

相反,许多亚洲文化将姓氏放在首位,因为家庭被认为比个人更重要.

最后一点 - 有些人非常喜欢"少年"或"高级"或"III" - 你的代码不应该把它们视为姓氏.

还注意到有相当多的人使用的名称不是他们父母赋予的名字,我使用了以下方案并取得了一些成功:

全名(通常用于处理邮件); 姓; 已知为(会话中常用的名称).

例如:

全名:William Gates III; 姓氏:盖茨; 众所周知:比尔

全名:宋李; 姓氏:宋; 被称为:丽莎


有些人没有"姓氏"或"姓氏",例如在一些东非文化中,他们使用父亲的名字和祖父的名字,例如Tom Dick Harry.在某些情况下,姓氏S在中间,例如Anson Maria Elizabeth Chan Fong On-sang.另请参阅维基百科文章"冰岛名称","阿拉伯名称"和"俄罗斯帝国,苏联和独联体国家的名称".
+1 - 请不要忘记我们这些受父母祝福的人使用我们名字以外的名字 - 就像'J. 埃德加胡佛'.法定名称(和CC,大多数时候)要求'J. 埃德加胡佛'; 休闲/昵称/已知 - 就像'埃德加胡佛'.名字,MI,姓氏不削减它.

2> Dave DuPlant..:

尝试从单个输入中拆分名称的问题在于,对于姓氏中包含空格的人,您将无法获得完整的姓氏,我不相信您将能够编写代码来完全管理它.

如果可能的话,我建议你单独询问这些名字.



3> Xealot..:

这是一个相当古老的问题,但我发现它正在寻找一种解决方案,从一个全球化的名称中解析出来.

http://code.google.com/p/python-nameparser/


它是以美国为中心的(例如,标题似乎几乎覆盖了美国武装部队的每个级别),并且大写代码产生了通常的无意义,如MacE和MacK以及MacHin :-(

4> CAD bloke..:

数据的黄金法则 - 不要过早聚合 - 将字段粘合在一起比分离它们要容易得多.大多数人还有一个中间名,应该是一个可选字段.有些人有很多中间人.有些人只有一个名字,一个字.一些文化通常都有一个中间名字典,向家族树致敬,回到Golgafrincham Ark登陆.

您不需要此处的代码解决方案 - 您需要业务规则.



5> Baltimark..:

一个简单的方法来完成你在python中所要求的是

name = "Thomas Winter"
LastName = name.split()[1]

(注意函数调用拆分的parantheses.)

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

然而,正如其他人所说,除非你确定你只是得到一个像"First_Name Last_Name"这样的字符串,否则涉及的问题会更多.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有