Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 列出一组坐标之间的坐标_Python_Math_Graph - Fatal编程技术网

Python 列出一组坐标之间的坐标

Python 列出一组坐标之间的坐标,python,math,graph,Python,Math,Graph,这应该是相当容易的,但我因为想弄明白而头疼。我想列出两点之间的所有坐标。像这样: 1: (1,1) 2: (1,3) In between: (1,2) 或 1: (1,1) 2: (5,1) In between: (2,1), (3,1), (4,1) 它不需要使用对角线。根据您想要如何处理边缘情况,这似乎是可行的: def points_between(p1, p2): xs = range(p1[0] + 1, p2[0]) or [p1[0]] ys = range

这应该是相当容易的,但我因为想弄明白而头疼。我想列出两点之间的所有坐标。像这样:

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

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

它不需要使用对角线。

根据您想要如何处理边缘情况,这似乎是可行的:

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)]

你似乎是一个初学编程的人。我发现一个通用的技巧很有用,就是在纸上自己做这项工作,然后看看你是如何做的,并将其转化为一个程序。如果您看不到如何操作,请将其分解为更简单的步骤,直到可以为止。

如果这是家庭作业,请添加该标记。如果第一个坐标高于相应的第二个坐标,则该标记将无法正常工作。非常好!只需要加一条小线来测试哪个更高。谢谢。如果这个问题有点意思,而我有几分钟的空闲时间,我可能会提供一个答案。我不想强制别人遵守纪律,也不想提高别人的软件技能,因为他们对提高自己并不感兴趣。换句话说,我不会强迫别人去关心。顺便说一句,我认为很明显,OP并没有为任何一个熟悉python的初学者课程的评分员提出这个解决方案。