列出一组坐标之间的坐标
这应该挺简单的,但我搞得头疼,想不明白。我想列出两个点之间的所有坐标。就像这样:
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)]