这是一个很难回答的问题。我在建模软件Rhinoceros 3D中使用Python。我有以下问题:
例如,我有以下数据。
l = [[1,2,3],[3,1.2,4],[1.000,2.0,3.0],[12,3,2],[1,5,3],[5,3,4],[1,6,2.0]]
我想将所有具有相同z值的数据归为一个列表:
所以结果应该是这样的:
l_2 = [[12,3,2],[1,6,2.0]]
l_3 = [[1,2,3], [1.000,2.0,3.0], [1,5,3]]
l_4 = [[3,1.2,4],[5,3,4]]
如何在不使用任何插件的情况下完成此操作?
答案 0 :(得分:1)
具有过滤功能的列表理解是一种方法:
l_2 = [x for x in l if x[2] == 2]
l_3 = [x for x in l if x[2] == 3]
l_4 = [x for x in l if x[2] == 4]
答案 1 :(得分:1)
您可以遍历l
并使用z
值的键将子列表附加到字典上:
d = {}
for x, y, z in l:
d.setdefault(z, []).append([x, y, z])
d
变为:
{3: [[1, 2, 3], [1.0, 2.0, 3.0], [1, 5, 3]], 4: [[3, 1.2, 4], [5, 3, 4]], 2: [[12, 3, 2], [1, 6, 2.0]]}