Python 找到相似的数据并将其放在单独的列表中
我在一个数组中有一组数据点x,y,z:Python 找到相似的数据并将其放在单独的列表中,python,Python,我在一个数组中有一组数据点x,y,z: [58.9067649841309, 57.8828468322754, -50.0] [63.3353118896484, 62.7399787902832, -50.0] [73.3353118896484, 62.8352203369141, -50.0] ... [75.9067916870117, 39.9781227111816, -15.0] [77.5257720947266, 58.3114356994629, -15.0] [58.90
[58.9067649841309, 57.8828468322754, -50.0]
[63.3353118896484, 62.7399787902832, -50.0]
[73.3353118896484, 62.8352203369141, -50.0]
...
[75.9067916870117, 39.9781227111816, -15.0]
[77.5257720947266, 58.3114356994629, -15.0]
[58.9067649841309, 57.8828468322754, -15.0]
需要找到具有匹配y的点,并将它们放在单独的列表中。我用各种方法搜索了几个小时,但运气不好
更新:抱歉,我不清楚,我可以使用排序功能对它们进行分组,但无法确定如何将它们放入单独的列表中。这似乎是您想要的。这似乎是您想要的。首先,您需要按Y轴对它们进行排序:
sl = sorted(data, key=lambda l:l[1])
然后,您可以使用itertools.groupby:
要打印:
for i, g in groupby(sl, key=lambda l:l[1]):
print str(i) + ":"
for x, y, z in g:
print x, y, z
39.9781227112:
75.906791687 39.9781227112 -15.0
57.8828468323:
58.9067649841 57.8828468323 -50.0
58.9067649841 57.8828468323 -15.0
58.3114356995:
77.5257720947 58.3114356995 -15.0
62.7399787903:
63.3353118896 62.7399787903 -50.0
62.8352203369:
73.3353118896 62.8352203369 -50.0
首先,您需要按Y轴对它们进行排序:
sl = sorted(data, key=lambda l:l[1])
然后,您可以使用itertools.groupby:
要打印:
for i, g in groupby(sl, key=lambda l:l[1]):
print str(i) + ":"
for x, y, z in g:
print x, y, z
39.9781227112:
75.906791687 39.9781227112 -15.0
57.8828468323:
58.9067649841 57.8828468323 -50.0
58.9067649841 57.8828468323 -15.0
58.3114356995:
77.5257720947 58.3114356995 -15.0
62.7399787903:
63.3353118896 62.7399787903 -50.0
62.8352203369:
73.3353118896 62.8352203369 -50.0
在将其传递给groupby之前,需要对L进行排序,似乎索引是1..?在将其传递给groupby之前,需要对L进行排序,似乎索引是1。。?