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

检查二维列表元素索引时返回错误值的问题排查

问题分析与解决

错误原因

你代码里的 table1.index(element) 是问题根源。这个方法会返回列表中第一个与element匹配的元素的索引,而你的table1里第1行(索引1)和第3行(索引3)的子列表内容完全相同:[' B ', ' - ', ' C ']。所以当遍历到第3行时,index()找到的是第一个匹配的行索引1,而非正确的3。

修复方案

改用 enumerate() 遍历二维列表,它能同时获取行索引和行内容,彻底解决这个问题:

table1=[[ ' - ', ' B ', ' C ',], 
        [ ' B ', ' - ', ' C '], 
        [ ' B ', ' B ', ' C '], 
        [ ' B ', ' - ', ' C ']]
for row_idx, row in enumerate(table1):
    for col_idx, val in enumerate(row):
        if val == " B ":
            print(row_idx, col_idx)

运行后会得到正确输出:

0 1
1 0
2 0
2 1
3 0

(注:你预期输出里漏写了第2行第0列的B,这段代码会输出所有" B "的位置)

如果你不想用enumerate(),也可以直接遍历行索引:

for row_idx in range(len(table1)):
    row = table1[row_idx]
    for col_idx in range(len(row)):
        if row[col_idx] == " B ":
            print(row_idx, col_idx)

效果和上面一致,只是写法更繁琐。

内容的提问来源于stack exchange,提问作者boran çakıl

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:35:24