从名称中删除前缀 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]
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]