2

配列にたくさんのデータ ポイント (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.9067649841309, 57.8828468322754, -15.0]

一致する y を持つポイントを見つけて、それらを別のリストに入れる必要があります。運が悪かったので、さまざまな方法で数時間検索しました。

更新: 申し訳ありませんが、明確ではありませんでした。並べ替え機能を使用してグループ化できますが、別のリストに入れる方法がわかりません。

4

2 に答える 2

2

まず、Y軸で並べ替える必要があります。

sl = sorted(data, key=lambda l:l[1])

その後、使用することができますitertools.groupby

from itertools import groupby

groupby(sl, key=lambda l:l[1])

印刷する:

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
于 2012-10-27T04:05:16.123 に答える
2

欲しいようですねitertools.groupby(L, key=lambda r: r[2])

于 2012-10-27T03:26:23.223 に答える