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

Python二维数组特定值查找:首尾行零值定位失败求助

问题分析与修复方案

核心问题:数据类型不匹配

你读取二维数组时,所有元素都是字符串类型(比如"0"、"1"),但查找时用的是整数0进行比较,导致条件a[9][i] == 0永远不成立,变量start和end自然不会更新。另外,读取文件时用line.split(' ')可能会产生空字符串(比如行尾空格分割后),需要过滤掉无效元素。

修复步骤

1. 修正数组读取代码

将读取到的字符串元素转为整数,并过滤空元素:

a = []  # 先初始化数组a
with open("maze_10x10.txt") as maze:
    for line in maze:
        # 过滤空元素并转成整数
        row = [int(item.strip()) for item in line.split(' ') if item.strip()]
        a.append(row)

2. 修正查找逻辑代码

遍历行的列数时,用该行的长度更严谨(避免数组非方阵的情况):

start = (9, 0)
end = (0, 0)
# 查找末行的0
for i in range(len(a[9])):
    if a[9][i] == 0:
        start = (9, i)
print(start)  # 输出 (9, 1)
# 查找首行的0
for i in range(len(a[0])):
    if a[0][i] == 0:
        end = (0, i)
print(end)  # 输出 (0, 7)

验证结果

运行修正后的代码,就能正确找到首行和末行中0的坐标:

  • 末行(第9行)的0在第1列,坐标(9,1)
  • 首行(第0行)的0在第7列,坐标(0,7)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 09:25:27