我想找出一些看起来应该很简单的事情。我试图从名字中删除中间的首字母,但我不知道如何做到这一点,而不对字母表中的每个字母都做替换()。这就是我要找的:
(起首为)
“约翰·D·史密斯”
罗伯特·B·约翰逊
(结尾为)
“约翰·史密斯”
“罗伯特·约翰逊”
在Python中实现上述目标的最简单方法是什么?中间的首字母是随机的,但总是被空白包围。
发布于 2016-02-02 19:04:51
根据你的帖子,希望你能帮上忙
>>> import re
>>> re.sub(' [A-Z]* ', ' ', "John D Smith")
'John Smith'
>>> re.sub(' [A-Z]* ', ' ', "Robert B Johnson")
'Robert Johnson'发布于 2016-02-02 19:01:35
name = "Name N Name".split() # Splits string at whitespace into list
del name[1] # Deletes 2nd item (middle initial)
removed_middle_initial = " ".join(name) # "Name Name"发布于 2016-02-02 19:01:37
内置的字符串操作使得这非常容易。
[name.split()[0] + " " + name.split()[2] for name in names]这是假设名字和姓氏不包括任何空格字符。如果需要更高级的需求,那么显然需要处理这些条件。
https://stackoverflow.com/questions/35161660
复制相似问题