从名称中删除前缀 python

Remove prefix from name python

names = [
'LIC. SEBASTIÁN LASTIRI',
'ING. AGR. ROBERTO DANIEL RODRÍGUEZ',
'C.P.N. JULIO DOMINGO BURAK',
'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO'
]

我有这样的名称列表,我需要从名称中删除前缀,如 ('lic'、'c.p.n' 等)(这只是示例,有很多这种格式的前缀)

输出shell是这样的:

'SEBASTIÁN LASTIRI'

我试过:

for i in names:
   if '.' in i:
        i.split('.')[1]

但是只有前缀有一个点才有效 如何解决这个问题

这是您的问题的解决方案:

import re

names = [
    'LIC. SEBASTIÁN LASTIRI',
    'ING. AGR. ROBERTO DANIEL RODRÍGUEZ',
    'C.P.N. JULIO DOMINGO BURAK',
    'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO'
]

new_names = [re.sub("^\s+", "", i.split(".")[-1]) for i in names]

print new_names # [SEBASTIÁN LASTIRI', ROBERTO DANIEL RODRÍGUEZ', JULIO DOMINGO BURAK', 'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO']

您可以使用以下代码:

import re    

names = [
'LIC. SEBASTIAN LASTIRI',
'ING. AGR. ROBERTO DANIEL RODRIGUEZ',
'C.P.N. JULIO DOMINGO BURAK',
'INGENIERO HIDRAULICO VICTOR AGUSTIN PORRINO'
]
for i in names:
    res = re.split(r'\.\s*(?=[^.]+$)', i)
    if len(res) > 1:
        print res[1]
    else:
        print res[0]

输出:

SEBASTIAN LASTIRI                                                                                                                                                                                                                                      
ROBERTO DANIEL RODRIGUEZ                                                                                                                                                                                                                               
JULIO DOMINGO BURAK                                                                                                                                                                                                                                    
INGENIERO HIDRAULICO VICTOR AGUSTIN PORRINO 

一个简单的过滤器,只使用末尾没有点的单词。

names = [
    'LIC. SEBASTIÁN LASTIRI',
    'ING. AGR. ROBERTO DANIEL RODRÍGUEZ',
    'C.P.N. JULIO DOMINGO BURAK',
    'INGENIERO HIDRÁULICO VÍCTOR AGUSTÍN PORRINO'
]

names_formated = [' '.join([sub for sub in name.split() if sub[-1] != '.']) for name in names]