我有以下列表:
Filedata:
[1, 0, 0, 0]
[2, 0, 0, 100]
[3, 0, 0, 200]
[4, 100, 0, 0]
[5, 100, 0, 100]
[6, 100, 0, 200]
...
其中第一列是 ID,第二列是 X 坐标,第三列是 Y 坐标,第四列是 Z 坐标。
我想在原始列表中制作两个不同 X 和 Y 坐标的列表:
X:
[0, 100, ...]
Y:
[0, 100, ...]
为此,我想到了一个代码,但在这个过程中,我意识到必须有一个更简单的原因来执行此操作而不是执行多个 for 和 if 循环。有什么想法吗?
请您参考如下方法:
IDs,Xs,Ys,Zs = zip(*filedata)
positions = zip(Xs,Ys,Zs) # list of tuples of (x,y,z)
unique_Xs = []
[unique_Xs.append(val) for val in Xs if val not in unique_Xs]
unique_Ys = []
[unique_Ys.append(val) for val in Ys if val not in unique_Ys]
我认为可行,假设 filedata 是一个二维列表,尽管 filedata 不是一个很好的变量名......
我添加了一种方法来在每个列表中获得独特的点数......但不完全确定这就是你想要的
