Pythonでリストのリスト内の要素をグループ化する方法は?

JaïrPaalman

頂点のリストを近隣のサイズで効率的にグループ化/ネストして、頂点のリストのリストにしようとしています。

近傍サイズは頂点のプロパティであり、vを呼び出すことで取得できますlen(v.neighbours)

私が持っている入力は、頂点のソートされていないリストです。取得しようとしている出力は次のようになります。

[[all vertices with len(v.neighbours) == 1], [... == 2], [... == 4]]    

これは、各サブリストに同じ近隣サイズの頂点が含まれ、空のリストなしで小さいものから大きいものへとソートされたリストのリストである必要があります。含まれている頂点の近傍サイズにマップするために、サブリストのインデックスは必要ありません。

私はリスト内包でこれを達成する方法を知っていますが、それはかなり非効率的です:

def _group(V: List[Vertex], max: int) -> List[List[Vertex]]:
    return [[v for v in V if v.label == i] for i in range(max)]

さらに、最大近隣サイズをパラメーターとして渡したくありませんが、グループ化中にそれを計算し、グループ化中に空のリストをフィルターで除外する方法も探しています。

中間ステップとして辞書を使用するなど、頂点をグループ化するためのより効率的な方法を検討しましたが、実際の結果を生成することはできませんでした。

頂点のリストをグループ化/ネストする最も効率的な方法を誰かに教えてもらえますか?

よろしくお願いします。以前に投稿されたことがあれば申し訳ありませんが、別の質問で探していたものが見つかりませんでした。

rdas

入力を1回パスし、結果を中間辞書に入れ、辞書を目的の出力に変換します。

temp_result = defaultdict(list)

for v in vertices:
    temp_result[neighborhood_size(v)].append(v)

max_size = max(temp_result.keys())

return_val = list()
for i in range(max_size):
    if temp_result[i]: # check if empty
        return_val.append(temp_result[i])

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Rのリスト内の要素のグループを平均化する方法は?

分類Dev

haskellのリスト内の要素をグループ化する

分類Dev

リスト内の要素をキーでグループ化する

分類Dev

Pythonのforループでリスト要素を削除する方法は?

分類Dev

Pythonのforループでリスト要素を削除する方法は?

分類Dev

Pythonの方法で複数のリストを1つのリストにグループ化する方法は?

分類Dev

matlabのマトリックス内の要素をグループ化する方法は?

分類Dev

Pythonの最初の要素でサブリストを再グループ化する

分類Dev

ストリーム内の時間に従って要素をグループ化する方法は?

分類Dev

リスト内のアイテムをグループ化するPythonの方法

分類Dev

Scalaは、関数がtrueであるリスト内の連続する要素をグループ化します

分類Dev

同じ名前のリスト要素をグループ化する方法は?

分類Dev

リスト内の同様の名前の要素をPythonのタプルにグループ化するにはどうすればよいですか?

分類Dev

Pythonの最初の文字で巨大なリストの要素を効果的にグループ化する方法

分類Dev

要素を2つのPythonリストでグループ化する

分類Dev

リスト内の重複する要素のグループを削除しますが、Pythonでは最初の要素を保持します。2つのリスト

分類Dev

Pythonでリスト内の近くのポイントをグループ化する方法

分類Dev

Pythonコードの改善-リスト要素をプロパティ値でグループ化する方法

分類Dev

Pythonでループ内のリスト要素を効果的に削除する方法

分類Dev

リスト内の同じ要素のインデックスをグループ化する効率的な方法

分類Dev

整数のリストの要素を符号でグループ化する最も速い方法は?

分類Dev

リスト内の同じ要素を効率的にグループ化する

分類Dev

python:同様のキー要素でグループ化するdictのリスト

分類Dev

Pythonでリスト要素をグループ化する

分類Dev

Java8でリストの要素を別の要素でグループ化する方法

分類Dev

Java8でリストの要素を別の要素でグループ化する方法

分類Dev

Pythonはリストの最後の要素をグループ化します

分類Dev

Pythonで2つのリストをグループ化する

分類Dev

Pythonで2つのリストをグループ化する

Related 関連記事

  1. 1

    Rのリスト内の要素のグループを平均化する方法は?

  2. 2

    haskellのリスト内の要素をグループ化する

  3. 3

    リスト内の要素をキーでグループ化する

  4. 4

    Pythonのforループでリスト要素を削除する方法は?

  5. 5

    Pythonのforループでリスト要素を削除する方法は?

  6. 6

    Pythonの方法で複数のリストを1つのリストにグループ化する方法は?

  7. 7

    matlabのマトリックス内の要素をグループ化する方法は?

  8. 8

    Pythonの最初の要素でサブリストを再グループ化する

  9. 9

    ストリーム内の時間に従って要素をグループ化する方法は?

  10. 10

    リスト内のアイテムをグループ化するPythonの方法

  11. 11

    Scalaは、関数がtrueであるリスト内の連続する要素をグループ化します

  12. 12

    同じ名前のリスト要素をグループ化する方法は?

  13. 13

    リスト内の同様の名前の要素をPythonのタプルにグループ化するにはどうすればよいですか?

  14. 14

    Pythonの最初の文字で巨大なリストの要素を効果的にグループ化する方法

  15. 15

    要素を2つのPythonリストでグループ化する

  16. 16

    リスト内の重複する要素のグループを削除しますが、Pythonでは最初の要素を保持します。2つのリスト

  17. 17

    Pythonでリスト内の近くのポイントをグループ化する方法

  18. 18

    Pythonコードの改善-リスト要素をプロパティ値でグループ化する方法

  19. 19

    Pythonでループ内のリスト要素を効果的に削除する方法

  20. 20

    リスト内の同じ要素のインデックスをグループ化する効率的な方法

  21. 21

    整数のリストの要素を符号でグループ化する最も速い方法は?

  22. 22

    リスト内の同じ要素を効率的にグループ化する

  23. 23

    python:同様のキー要素でグループ化するdictのリスト

  24. 24

    Pythonでリスト要素をグループ化する

  25. 25

    Java8でリストの要素を別の要素でグループ化する方法

  26. 26

    Java8でリストの要素を別の要素でグループ化する方法

  27. 27

    Pythonはリストの最後の要素をグループ化します

  28. 28

    Pythonで2つのリストをグループ化する

  29. 29

    Pythonで2つのリストをグループ化する

ホットタグ

アーカイブ