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

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

分類Dev

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

Related 関連記事

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

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

ホットタグ

アーカイブ