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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:39:05