Python 如何从三维坐标边集检索顶点集

Python 如何从三维坐标边集检索顶点集,python,3d,coordinates,Python,3d,Coordinates,我有3D中的边列表,如下所示 ((x1,y1,z1),(x2,y2,z2)) ..... ((x_k,y_k,z_k),(x_t,y_t,z_t)) 从中,我需要获得顶点列表 我目前的想法是: 创建初始emty集V 检查所有边,检查两个点的坐标,如果不在集合V中,则将其添加到集合V中 我觉得一个接一个的检查3D坐标是否存在于集合中不是很快 我需要一个更干净更快的方法?有什么建议吗?因为所有边都由顶点组成,所以只需提取所有顶点并删除重复的顶点,例如 >>> x = [((1,2)

我有3D中的边列表,如下所示 ((x1,y1,z1),(x2,y2,z2)) ..... ((x_k,y_k,z_k),(x_t,y_t,z_t))

从中,我需要获得顶点列表

我目前的想法是: 创建初始emty集V

检查所有边,检查两个点的坐标,如果不在集合V中,则将其添加到集合V中

我觉得一个接一个的检查3D坐标是否存在于集合中不是很快


我需要一个更干净更快的方法?有什么建议吗?

因为所有边都由顶点组成,所以只需提取所有顶点并删除重复的顶点,例如

>>> x = [((1,2), (1,5)), ((2,3), (4,5)), ((1, 2), (6,7))]
>>> set(sum(x, tuple()))
{(1, 2), (1, 5), (4, 5), (2, 3), (6, 7)}


哇。非常感谢,你能解释sum(x,tuple())吗?如果你看一下
sum
函数的docstring,你会发现它有
default
作为第二个变量。它是累积总和的初始值,例如,
sum([1,2,3],10)=16
=10+1+2+3(总和从10开始-初始值);对于元组,我们也可以定义这样的默认值:
sum([((1,2),(3,4)),((7,8),),tuple())=((1,2),(3,4))+((7,8),)+tuple()
=>展平嵌套元组的列表。
>>> list(set(sum(x, tuple())))