列出一组坐标之间的坐标

-1 投票
2 回答
1647 浏览
提问于 2025-04-17 01:37

这应该挺简单的,但我搞得头疼,想不明白。我想列出两个点之间的所有坐标。就像这样:

1: (1,1)
2: (1,3)
In between: (1,2)

或者

1: (1,1)
2: (5,1)
In between: (2,1), (3,1), (4,1)

不需要考虑斜对角的情况。

2 个回答

4

看起来你是个刚开始学编程的朋友。这里有个我觉得很有用的方法,就是先自己在纸上把事情做一遍,然后再看看你是怎么做的,再把这个过程转化成程序。如果你不知道怎么做,就把它拆分成更简单的步骤,直到你能明白为止。

2

根据你想怎么处理一些特殊情况,这段代码看起来是可行的:

def points_between(p1, p2):
    xs = range(p1[0] + 1, p2[0]) or [p1[0]]
    ys = range(p1[1] + 1, p2[1]) or [p1[1]]
    return [(x,y) for x in xs for y in ys]

print points_between((1,1), (5,1))
# [(2, 1), (3, 1), (4, 1)]

print points_between((5,6), (5,12))
# [(5, 7), (5, 8), (5, 9), (5, 10), (5, 11)]

撰写回答