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

Python如何使用for循环反向遍历列表检查元素重复

反向遍历列表检查前置重复单词实现方案

你现有写法的问题是直接遍历列表元素拿不到当前元素的索引,没法圈定「当前位置之前的元素」这个遍历范围,需要先调整外层循环拿到索引,再通过切片实现反向遍历前置元素。

完整实现代码

mystring = "My name is Rohit Kaushik. Rohit loves to play cricket"     
mylist = mystring.split(' ')

for idx, current_word in enumerate(mylist):
    # 内层循环反向遍历当前索引之前的所有元素
    for check_word in mylist[:idx][::-1]:
        if check_word == current_word:
            print(f"检测到重复单词:{current_word},在位置{idx}处重复出现")
            # 找到重复后直接终止内层循环
            break

逻辑说明

  • 外层循环用enumerate()包裹列表,遍历时同时拿到当前元素的索引idx和元素值current_word,解决纯值遍历无法定位位置的问题
  • 内层遍历对象mylist[:idx][::-1]分两部分生效:
    • mylist[:idx]是切片操作,取列表从开头到当前索引前一位的所有元素,也就是当前单词之前出现过的所有内容
    • 后缀[::-1]是Python序列的反向语法,设置步长为-1,让遍历从离当前位置最近的前置元素开始,往列表头部方向走
  • 匹配到重复单词后直接用break终止内层循环,不需要继续往前遍历

对应场景验证

拆分后的mylist索引从0开始计数:
0:My、1:name、2:is、3:Rohit、4:Kaushik.、5:Rohit
当外层遍历到索引5的Rohit时,内层反向遍历的前置片段是['Kaushik.', 'Rohit', 'is', 'name', 'My'],遍历到第二个元素就会匹配到Rohit,触发break终止循环,完全符合需求。

内容的提问来源于stack exchange,提问作者Rohit Kaushik

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:57:11