说我有一个矩形,它的左上和右下坐标分别是A(0,0)和B(2,3)。有没有可以用来获取此矩形内所有坐标的方法/公式?如果输入是这两个坐标,我希望输出是这样的:
input: [(0, 0), (2, 3)]
output: [(0, 0), (1, 0), (2, 0), (0, 1), (1, 1), (2, 1), (0, 2), (1, 2), (2, 2), (0, 3,) (1, 3,) (2, 3)]
此外,尽管不是必需的,但还是会非常感谢python 3的实现。
谢谢
编辑:全文:我正在使用python,首先我想我可以通过获取x1和x2,y1和y2之间的所有值来实现我想要的。例如,我有x = 0,x = 1,x = 2和y = 0,y = 1,y = 2,y = 3,但老实说我不知道从那里去哪里,或者如果这是首先正确。我以为我可以通过以不同的x值以某种方式获取y = 0的所有坐标,然后以y = 1的所有坐标来获取所有坐标,但是我似乎无法将自己的头缠在一个这样做的方法上。感谢您的任何帮助。
答案 0 :(得分:0)
您可以做的一件事是列出矩形[x
]内的所有x1..x2
坐标和矩形[y
]内的所有y1..y2
坐标的列表,然后使用itertools
取两个列表的笛卡尔积:
import itertools
...
input = [(0, 0), (2, 3)]
x_coords = [x for x in range(input[0][0], input[1][0] + 1)]
y_coords = [y for y in range(input[0][1], input[1][1] + 1)]
output = list(itertools.product(x_coords, y_coords))
如果您不想使用itertools
来计算乘积,则也可以轻松地使用for
循环或列表推导来代替它,这与{{ 1}}仍在幕后做事:
itertools