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

如何提取二维数组行列字符?无法获取目标单词完整内容求助

解决二维数组中提取目标单词的问题

首先,你当前的代码只是逐个遍历并打印非'0'的字符,这自然没法把连续的字符组合成完整的单词。要提取出eagle和apple,需要检查数组中连续的字符序列(先覆盖水平、垂直这两种最常见的排列方向,根据你的描述应该足够)。

步骤1:明确检测逻辑

我们需要把数组的每一行、每一列的非空字符(非'0')拼接成字符串,再检查目标单词是否包含在其中——这样就能捕捉到连续排列的字符序列了。

步骤2:修改后的代码实现

下面是调整后的完整代码,包含水平和垂直方向的单词检测:

import numpy as np

# 基于你的代码初始化15×15数组
arr2 = np.array(my_list2).reshape(15, 15)
board_size = 15
# 定义要提取的目标单词(统一小写方便匹配)
target_words = ['eagle', 'apple']

# 检查水平方向的单词(逐行拼接字符)
for i in range(board_size):
    # 把当前行的非'0'字符转小写后拼接成字符串
    row_str = ''.join([char.lower() for char in arr2[i] if char != '0'])
    for word in target_words:
        if word in row_str:
            print(word)

# 检查垂直方向的单词(逐列拼接字符)
for j in range(board_size):
    # 把当前列的非'0'字符转小写后拼接成字符串
    col_str = ''.join([char.lower() for char in arr2[:, j] if char != '0'])
    for word in target_words:
        if word in col_str:
            print(word)

关键说明

  • 统一转小写是为了避免大小写不匹配的问题(比如你数组里是大写的E A G L E,转小写后就能完美匹配eagle)。
  • 你之前没拿到apple的首字母A,大概率是因为apple是垂直排列的(A在某一列上方,下方依次是P-P-L-E),而原代码只是逐行零散打印字符,没有把同一列的连续字符组合起来,自然识别不出完整单词。

如果你的单词还有斜向排列的情况(比如左上到右下、右上到左下),可以再扩展斜向的检查逻辑,不过先搞定水平和垂直方向应该就能满足你的需求了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:58:39