Python如何检测字符串中指定介词并获取其所在索引位置
你可以用enumerate()函数遍历拆分后的姓名列表,同时获取每个元素的索引和内容,逐个匹配介词列表即可,常规西方姓名中这类介词仅会出现一次,找到第一个匹配项后停止遍历即可满足需求。
示例实现代码
# 你的原有变量 a = input("请输入姓名:").split() b = ["Van", "Von", "De", "Di"] # 存储匹配到的介词和对应索引 matched_prep = None matched_idx = None for idx, word in enumerate(a): if word in b: matched_prep = word matched_idx = idx break # 仅需匹配第一个介词时保留,需要匹配所有介词可以删除该行 # 按要求格式化输出 if matched_prep: # 介词前的内容是名字,介词后的内容是姓氏 first_name = " ".join(a[:matched_idx]) last_name = " ".join(a[matched_idx+1:]) result = f"{matched_prep} {last_name}, {first_name} {matched_prep} {last_name} *edited" else: # 无匹配介词时的普通邦德格式输出,可根据自己需求修改 first_name = " ".join(a[:-1]) last_name = a[-1] result = f"{last_name}, {first_name} {last_name}" print(result)
测试示例
输入姓名为Leonardo Di Caprio时,输出为:
Di Caprio, Leonardo Di Caprio *edited
输入姓名为James Bond时,输出为:
Bond, James Bond
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

