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

Python二维数组元素搜索方法及代码运行异常排查

问题原因

你代码的逻辑错误出在返回值的缩进位置:

  • 当前你把return 'The element has not been found.'放在了内层for循环的if分支同级的else里,这就导致代码只会检查二维数组的第一个元素[0][0]:如果第一个元素匹配就返回位置,只要第一个元素不匹配,立刻直接返回未找到,根本不会遍历剩下的元素。
  • 正确逻辑应该是遍历完全部元素之后,如果还没有匹配到值,再返回未找到的提示。

修正后的代码

import numpy as np # 原代码运行需要先导入numpy,注意补全

twoDArray = np.array([[11, 15,10, 6], [10, 14, 11, 5], [12, 17, 12, 8], [15, 18, 14, 9]])
print(twoDArray)

def searchTDArray(array, value):
    for i in range(len(array)): # 遍历所有行
        for j in range(len(array[0])): # 遍历当前行的所有列
            if array[i][j] == value:
                return f'该值的位置是索引[{i}][{j}]'
    # 所有循环执行完毕仍未返回,说明不存在对应值
    return '未找到该元素'

print(searchTDArray(twoDArray, 11))
print(searchTDArray(twoDArray, 14)) # 测试其他存在的值,会正常返回位置[1][1]

补充说明

你提到和讲师代码一致但运行结果不同,大概率是你抄写代码时把未找到的返回语句的缩进写错了,缩进在Python中属于语法的一部分,会直接影响逻辑执行顺序,编写时需要格外注意。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 02:45:03