2017-02-14 9 views
1

今日、私は大学の図書館から、Magnus Lie HetlandのPython Algorithmsを手に入れました。この本の第2章では、次のような隣接関係リストを作成しました。これは涼しいものでした:隣接関係PythonでRepresentaionを設定

a,b,c,d,e,f,g,h = range(8) 
N = [{b,c,d,e,f},{c,e},{d},{e},{f},{c,g,h},{f,h},{f,g}] 

そして私が行うとき:

N[a]

私はNの最初の要素を取得し、一種のそれがこのようにマッピングされてしまったのか私に驚きですか?

私はこの質問を見つけましたが、それは私が依頼しているものとは違って、それが重複しているかどうか私に知らせてください。

Adjacency List and Adjacency Matrix in Python

おかげで、 Prerit

答えて

2

それはちょうどPythonの。

a,b,c,d,e,f,g,h = range(8) 

はタプルの割り当てです。それはあなたがN[a]を言うときので、あなたがしているなど、

N = [{b,c,d,e,f},{c,e},{d},{e},{f},{c,g,h},{f,h},{f,g}] 

は0番目の要素がセット{b,c,d,e,f}あるNという名前の配列を作成するなど、b

aから0、1を代入しますN[0]と言っても、それはあなたが見ているセットです。

Pythonでハードコーディングして一定のグラフを作成するのはすごく便利ですが、別のアルゴリズムの入力または出力に基づいてグラフを動的に作成する必要がある場合は、別の表現が必要です。

+0

私は疑問を抱いていましたが、私が上に作成したものをマップすると思っていましたが、その中の要素の数がアルファベットの26文字を超えるとどうなりますか? – Prerit

+0

私はこの本をちょうど見ている他の表現について知っています。あなたは入門書(ある種のもの)から何を学ぶのか分からない。 :) – Prerit

関連する問題