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

Python如何基于中心坐标生成x/y±2范围内的坐标点列表

Python实现生成指定范围坐标列表

实现思路

你需要的25个坐标本质是中心点x、y分别叠加-2/-1/0/1/2的偏移量得到的全组合,我们只要保留已有中心点作为列表首元素,再把其余偏移组合对应的坐标追加到列表即可。

代码实现

基础写法(无需额外依赖,可读性高)

# 初始坐标列表,中心点为第一个元素
coord_list = [[1, 2]]
center_x, center_y = coord_list[0]

# 遍历x、y的所有偏移范围
for dx in range(-2, 3):
    for dy in range(-2, 3):
        # 跳过中心点偏移,避免重复添加
        if dx == 0 and dy == 0:
            continue
        coord_list.append([center_x + dx, center_y + dy])

# 验证结果
print(len(coord_list)) # 输出25
print(coord_list[0]) # 输出[1, 2]

简洁写法(基于itertools)

import itertools

coord_list = [[1, 2]]
center_x, center_y = coord_list[0]

# 生成所有偏移组合,过滤中心点后批量追加
offsets = itertools.product(range(-2, 3), repeat=2)
coord_list.extend([center_x + dx, center_y + dy] for dx, dy in offsets if dx != 0 or dy != 0)

说明

  • range(-2, 3) 会生成-2、-1、0、1、2共5个整数,x、y偏移全组合刚好是5*5=25个点
  • 跳过(0,0)偏移的逻辑可以保证初始中心点始终在列表第一位,不会被重复添加

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:54:03