You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取列表人名元素中的称谓替换原元素,无需逐行编写替换规则?

方案1:字符串分割法(无需引入额外库,逻辑简单)

观察所有人名的格式统一为姓氏, 称谓. 姓名,可以按固定规则拆分提取:

names=['Anna, Mrs. James (Nadia Elf)', 'Martin, Mr. Michael ', 'Barese, Mr. Alfred', 'Amalfi, Mrs. Abby (J E V)', 'Manuel, Dr. Louis']
titles = []
for name in names:
    # 先按逗号拆分取后半部分,去除首尾空格后按空格拆分,取第一个元素去掉末尾的点
    title = name.split(',')[1].strip().split()[0].rstrip('.')
    titles.append(title)
print(titles)

运行输出结果为:

['Mrs', 'Mr', 'Mr', 'Mrs', 'Dr']

如果想写得更简洁可以用列表推导式,一行就能完成:

titles = [name.split(',')[1].strip().split()[0].rstrip('.') for name in names]

方案2:正则匹配法(适配性更强,适合格式有小差异的场景)

如果后续人名格式有小变动(比如部分称谓前没有逗号),可以用正则匹配所有带.后缀的称谓关键词:

import re

names=['Anna, Mrs. James (Nadia Elf)', 'Martin, Mr. Michael ', 'Barese, Mr. Alfred', 'Amalfi, Mrs. Abby (J E V)', 'Manuel, Dr. Louis']
titles = [re.search(r'(\w+)\.', name).group(1) for name in names]
print(titles)

运行结果和方案1完全一致。

内容的提问来源于stack exchange,提问作者john johns

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:18:04