【发布时间】:2021-11-26 18:05:28
【问题描述】:
鉴于这份名单
names=['Anna, Mrs. James (Nadia Elf)', 'Martin, Mr. Michael ', 'Barese, Mr. Alfred', 'Amalfi, Mrs. Abby (J E V)'
,'Manuel, Dr. Louis']
我正在尝试将每个名称替换为其标题。
例如,名字是“安娜,詹姆斯夫人 (Nadia Elf)” 我想用“夫人”替换它。
为了确保以下代码按我想要的方式工作,并且每个名称都被其标题替换,我必须重复这些行
titles = []
for i in names:
new_string = i.replace("Anna, Mrs. James (Nadia Elf)", "Mrs")
titles.append(new_string)
print(titles)
列表中的每一项。 我应该如何编写一个不超过几行的代码来处理这个问题?
【问题讨论】:
-
标题是否总是作为每个名称字符串中逗号后的第一个元素给出?如果是这样,您可以拆分每个名称,(或使用更优雅的正则表达式)选择此元素并执行替换。
-
提示:
new_string = i.replace("Anna, Mrs. James (Nadia Elf)", "Mrs")可以是new_string = "Mrs"。现在你只需要根据i知道在作业的右侧放什么。 -
@albert 不一定
-
提示 2:要检查字符串
title是否包含在另一个字符串name中,请使用title in name。 -
避免脆弱性的最佳方法是对输入使用相同的规则,并强制执行您以后可以明确解析的格式。但我不确定这是否有资格作为答案,所以请留下评论。
标签: python list replace substring