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

Python二维列表查找重复元素问题:仅输出部分结果且索引越界

问题翻译

我需要在二维列表的不同行中查找重复单词。当前代码仅输出“happy”,但我希望“happy”和“very”都能被输出;若修改循环中的-1则会出现索引越界错误。代码如下:

def helper(a):
  for x in range(len(a)-1):
    for y in range(len(a[x])):
      for i in range(len(a)):
        for j in range(len(a[x])-1):
          if(a[x][y]==a[i][j]):
            if(x!=i and y!=j):
              print(a[i][j])

测试列表:

a=[['i', 'will', 'always', 'be', 'very', 'happy'],['happy','people', 'are', 'cool', 'very']]

代码问题分析

你的代码存在三个关键问题:

  • 行长度匹配错误:内层循环j的范围用了len(a[x])-1,强制用当前行x的长度限制其他行i的遍历范围。测试列表中第二行长度为5,第一行长度为6,若去掉-1,第一行的j会遍历到5,而第二行只有索引0-4,直接触发索引越界;保留-1则可能漏查其他行的元素。
  • 多余的列索引条件:y!=j会过滤掉不同行但同一列的重复单词,比如测试列表中两行的very因列索引相同被排除,导致无法输出。
  • 无去重与遍历范围不全:重复单词会被多次输出,且range(len(a)-1)只遍历到倒数第二行,最后一行的单词不会被用来查找其他行的重复。

修正方案

推荐两种实现方式,均能正确输出不同行的重复单词并避免越界:

方式一:用字典记录单词出现的行(高效清晰)

def helper(a):
    word_rows = {}
    # 遍历所有行,记录每个单词出现的行号集合
    for row_idx, row in enumerate(a):
        for word in row:
            if word not in word_rows:
                word_rows[word] = set()
            word_rows[word].add(row_idx)
    # 筛选出在至少两个不同行出现的单词
    duplicates = [word for word, rows in word_rows.items() if len(rows) >= 2]
    for word in duplicates:
        print(word)

方式二:修正原循环逻辑(贴近初始写法)

def helper(a):
    seen = set()  # 用集合去重,避免重复输出
    for x in range(len(a)):  # 遍历所有行,不再限制到倒数第二行
        for y in range(len(a[x])):
            current_word = a[x][y]
            if current_word in seen:
                continue
            # 遍历其他行查找重复
            for i in range(len(a)):
                if i == x:
                    continue  # 跳过同一行
                # 用当前i行自身的长度遍历元素
                for j in range(len(a[i])):
                    if a[i][j] == current_word:
                        seen.add(current_word)
                        print(current_word)
                        break  # 找到就停止,避免重复查找
                if current_word in seen:
                    break

测试上述代码,输入你的测试列表,会输出:

happy
very

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:35:26