Pythonで優先度キューの優先度関数を変更するにはどうすればよいですか?

プラタム・ヤダブ:

DjikstraのアルゴリズムをPythonに実装したい。したがって、グラフのノードを優先キューに格納する場合、ソースノードからの距離順にノードをソートする必要があります。ノードがこのようにソートされるように、優先度関数をどのように変更できますか?キューモジュールでPriorityQueueクラスを使用しています。デフォルトでは、入力された整数は降順でソートされます。つまり、最小の要素の優先順位が最も高くなります。ノードオブジェクトの距離属性に基づいてノードを並べ替える優先度関数を入力したいと思います。以下はノードクラスです-クラスノードノードの距離誰かがここで私を助けてくれますか?

カリーム:

ドキュメントで説明さPriorityQueueれているように、Pythonのはカスタム比較関数を受け入れないようです。ただし、関数呼び出しは最小のアイテムを決定する関数を受け入れるminため、通常のリストを使用して目的を達成できますminkey

class node():
    def __init__(self, dist):
        self.dist = dist

def get_dist(node):
    return node.dist

nodes = [node(4), node(413), node(2), node(14), node(5)]

out = min(nodes, key=get_dist)
nodes.remove(out)
print('popped out:', out.dist) # popped out: 2

out = min(nodes, key=get_dist)
nodes.remove(out)
print('popped out:', out.dist) # popped out: 4

out = min(nodes, key=get_dist)
nodes.remove(out)
print('popped out:', out.dist) # popped out: 5

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Android:NFCプロトコルの優先度を変更するにはどうすればよいですか?

分類Dev

ActiveAdminで親メニューの優先度を設定するにはどうすればよいですか?

分類Dev

JavaScriptで解析サーバーの呼び出しの優先度を変更するにはどうすればよいですか?

分類Dev

FCMメッセージの優先度を指定するにはどうすればよいですか?

分類Dev

Firefoxのアドレスバーの提案の優先度をタグに変更するにはどうすればよいですか?

分類Dev

Scalaで優先度キューのk番目の最小要素を取得するにはどうすればよいですか?

分類Dev

同じ優先度で優先度キューに追加される「サイド」オブジェクトを変更することはできますか?

分類Dev

Qtアプリケーションのメインスレッドで実行される関数をできるだけ高い優先度でキューに入れるにはどうすればよいですか?

分類Dev

ディスパッチキューまたは操作キューを使用して、バックグラウンド操作の優先度を動的に変更するにはどうすればよいですか。

分類Dev

優先度の高いGCMを送信するにはどうすればよいですか?

分類Dev

優先度の低い割り込みを終了するにはどうすればよいですか?

分類Dev

Win7でプロセスまたはスレッドのI / O優先度を変更するにはどうすればよいですか?

分類Dev

Slurmジョブに最大の優先度を設定するにはどうすればよいですか?

分類Dev

Linuxで特定のスレッド(LWT)の優先度を変更するにはどうすればよいですか?

分類Dev

Rustのcortex-m4プロセッサで例外優先度を変更するにはどうすればよいですか?

分類Dev

プロセスのIO優先度を表示するにはどうすればよいですか?

分類Dev

トップコマンドで優先度を処理するように順序を変更するにはどうすればよいですか?

分類Dev

HttpRuntime.Cacheオブジェクトのキャッシュアイテムの優先度を取得するにはどうすればよいですか?

分類Dev

Python-1つのボタンで複数のコマンドの優先度を設定するにはどうすればよいですか?

分類Dev

PulseAudioポートの優先順位を変更するにはどうすればよいですか?

分類Dev

優先キューの特定の要素を削除するにはどうすればよいですか?

分類Dev

モジュールをインストールするときに、ODOOでcss優先度を調整するにはどうすればよいですか?

分類Dev

Pythonの優先度キューに優先度が存在するかどうかを確認する方法はありますか?

分類Dev

C ++さまざまな優先度関数を使用して優先度キューを実装するための最良の方法は何ですか?

分類Dev

列の特定の組み合わせを変更する関数を適用するにはどうすればよいですか?(purrr ::優先使用)

分類Dev

実行時に制約の優先順位を変更するにはどうすればよいですか

分類Dev

Scala優先キューに注文を適用するにはどうすればよいですか?

分類Dev

x-www-browserの優先順位を変更するにはどうすればよいですか?

分類Dev

teradataのリクエストに対するユーザーの優先度を測定するにはどうすればよいですか?

Related 関連記事

  1. 1

    Android:NFCプロトコルの優先度を変更するにはどうすればよいですか?

  2. 2

    ActiveAdminで親メニューの優先度を設定するにはどうすればよいですか?

  3. 3

    JavaScriptで解析サーバーの呼び出しの優先度を変更するにはどうすればよいですか?

  4. 4

    FCMメッセージの優先度を指定するにはどうすればよいですか?

  5. 5

    Firefoxのアドレスバーの提案の優先度をタグに変更するにはどうすればよいですか?

  6. 6

    Scalaで優先度キューのk番目の最小要素を取得するにはどうすればよいですか?

  7. 7

    同じ優先度で優先度キューに追加される「サイド」オブジェクトを変更することはできますか?

  8. 8

    Qtアプリケーションのメインスレッドで実行される関数をできるだけ高い優先度でキューに入れるにはどうすればよいですか?

  9. 9

    ディスパッチキューまたは操作キューを使用して、バックグラウンド操作の優先度を動的に変更するにはどうすればよいですか。

  10. 10

    優先度の高いGCMを送信するにはどうすればよいですか?

  11. 11

    優先度の低い割り込みを終了するにはどうすればよいですか?

  12. 12

    Win7でプロセスまたはスレッドのI / O優先度を変更するにはどうすればよいですか?

  13. 13

    Slurmジョブに最大の優先度を設定するにはどうすればよいですか?

  14. 14

    Linuxで特定のスレッド(LWT)の優先度を変更するにはどうすればよいですか?

  15. 15

    Rustのcortex-m4プロセッサで例外優先度を変更するにはどうすればよいですか?

  16. 16

    プロセスのIO優先度を表示するにはどうすればよいですか?

  17. 17

    トップコマンドで優先度を処理するように順序を変更するにはどうすればよいですか?

  18. 18

    HttpRuntime.Cacheオブジェクトのキャッシュアイテムの優先度を取得するにはどうすればよいですか?

  19. 19

    Python-1つのボタンで複数のコマンドの優先度を設定するにはどうすればよいですか?

  20. 20

    PulseAudioポートの優先順位を変更するにはどうすればよいですか?

  21. 21

    優先キューの特定の要素を削除するにはどうすればよいですか?

  22. 22

    モジュールをインストールするときに、ODOOでcss優先度を調整するにはどうすればよいですか?

  23. 23

    Pythonの優先度キューに優先度が存在するかどうかを確認する方法はありますか?

  24. 24

    C ++さまざまな優先度関数を使用して優先度キューを実装するための最良の方法は何ですか?

  25. 25

    列の特定の組み合わせを変更する関数を適用するにはどうすればよいですか?(purrr ::優先使用)

  26. 26

    実行時に制約の優先順位を変更するにはどうすればよいですか

  27. 27

    Scala優先キューに注文を適用するにはどうすればよいですか?

  28. 28

    x-www-browserの優先順位を変更するにはどうすればよいですか?

  29. 29

    teradataのリクエストに対するユーザーの優先度を測定するにはどうすればよいですか?

ホットタグ

アーカイブ