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

如何实现coords函数生成指定格式的坐标二维列表?

实现coords坐标生成函数

需求说明

需要实现一个coords函数,满足:

  • 传入参数3时,返回:
    [[(-1, -1), (-1, 0), (-1, 1)], [(0, -1), (0, 0), (0, 1)], [(1, -1), (1, 0), (1, 1)]]
    
  • 传入参数2时,返回:
    [[(-1, -1), (0, -1)], [(0, -1), (0, 0)]]
    

问题分析

从给出的示例可以拆解出两种生成逻辑:

  • 当N为奇数:生成中心在原点的N×N完整网格,x和y的取值范围均为-(N-1)/2到(N-1)/2,每个子列表对应一个固定x值,遍历所有y值生成坐标对。
  • 当N为偶数:生成L形坐标集合,第一个子列表是y取最小值时的所有x坐标对,第二个子列表是x取最大值时的所有y坐标对。

解决代码

def coords(N):
    if N % 2 == 1:
        # 奇数情况:生成完整N×N网格
        start = -(N - 1) // 2
        coords_range = [start + i for i in range(N)]
        return [[(x, y) for y in coords_range] for x in coords_range]
    else:
        # 偶数情况:生成L形坐标集合
        start = -N // 2
        end = start + N - 1
        # 第一组:y固定为最小值,遍历x
        group1 = [(x, start) for x in range(start, end + 1)]
        # 第二组:x固定为最大值,遍历y
        group2 = [(end, y) for y in range(start, end + 1)]
        return [group1, group2]

代码验证

  • 调用coords(3),返回结果与预期完全一致;
  • 调用coords(2),返回结果与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:00:56