背景:
我有一个非常大的 3D 笛卡尔坐标列表,我需要处理此列表以按其 Z 坐标(即该平面中的所有坐标)对坐标进行分组。目前,我使用循环为每个 Z 坐标从列表中手动创建组,但如果现在有几十个可能的 Z(以前只处理 2-3 个平面)坐标,这将变得不切实际。我当然知道如何根据类似元素对列表进行分组,但我正在寻找一种方法来自动处理 n 个可能的 Z 值的过程。
问题:
自动化对相同 Z 的列表元素进行分组的过程的最有效方法是什么协调然后为每个平面创建一个唯一列表?
代码片段:
我只是使用一个简单的列表推导来对单个平面进行分组:
newlist=[x for x in coordinates_xyz if insert_possible_Z in x]
我正在寻找它来自动为数据集中的每个 Z 平面创建一个新的唯一列表。
数据格式:
((x1,y1,0), (x2, y2, 0), ... (xn, yn, 0), (xn+1,yn+1, 50),(xn+2,yn+2, 50), ... (x2n+1,y2n+1, 100), (x2n+2,y2n+2, 100)...)
等
我想自动获取 Z=0、Z=50、Z=100 等的所有坐标。注意 Z 的值(增量为 50)只是一个示例,实际数据可以有任何值。
注意:
我的数据是从文件中导入的,或者是由列表中的单独模块生成的。这对于与另一个程序(我没有写过)的接口是必要的。