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

8行10列矩阵中指定坐标元组合法邻接位置的实现方法

邻接坐标计算实现方案

核心逻辑说明

  • 参考给出的预期输出,这里的邻接指正交方向相邻(即仅上下左右四个方向,不包含斜向对角位置)
  • 先固定四个方向的坐标偏移量,避免重复编写判断逻辑
  • 每生成一个偏移后的坐标,必须校验是否落在矩阵有效边界内:行索引范围为0 ~ rows-1,列索引范围为0 ~ columns-1,越界的坐标直接丢弃

补全后的代码

之前编写的元组转嵌套列表的步骤并非必要,元组本身可直接通过索引读取行、列值,可直接简化循环逻辑:

l = [(4,6),(0,3),(7,9)]
rows = 8
columns = 10
# 按示例邻接顺序定义方向偏移:上、左、右、下
directions = [(-1, 0), (0, -1), (0, 1), (1, 0)]

for (r, c) in l:
    valid_neighbors = []
    for dr, dc in directions:
        # 计算偏移后的坐标
        new_r = r + dr
        new_c = c + dc
        # 边界校验:仅保留矩阵范围内的坐标
        if 0 <= new_r < rows and 0 <= new_c < columns:
            valid_neighbors.append((new_r, new_c))
    # 拼接成要求的输出格式
    neighbor_content = " ".join(f"({nr}, {nc})" for nr, nc in valid_neighbors)
    print(f"Neighbors ({r}, {c}): {neighbor_content}")

运行输出结果

运行代码后将得到和预期完全一致的输出:

Neighbors (4, 6): (3, 6) (4, 5) (4, 7) (5, 6)
Neighbors (0, 3): (0, 2) (0, 4) (1, 3)
Neighbors (7, 9): (6, 9) (7, 8)

说明:上述代码无需额外做元组到列表的格式转换,直接遍历原坐标列表即可完成计算,减少冗余步骤。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.29 16:27:00