我有以下3D边缘列表 (((x1,y1,z1),(x2,y2,z2)) ..... (((x_k,y_k,z_k),(x_t,y_t,z_t))
我需要从中获取顶点列表。
我目前的想法: 创建初始空集V
检查所有边缘,检查2个点的坐标,如果不在集合V中,则将其添加到V。
我觉得一一检查集合中是否存在3D坐标并不快。
我需要一种更清洁,更快捷的方法?有什么建议吗?
答案 0 :(得分:1)
由于所有边都由顶点组成,因此您只需要提取所有顶点并删除重复的顶点即可,例如
>>> 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)}
或
>>> list(set(sum(x, tuple())))