これは些細なことです。しかし、私は自分のトリックについて100%確信が持てません。
グラフのノード間のエッジ関係をキャプチャするリストのリストがあります(笑;))。0、1、2、3というラベルの付いた4つのノードを持つ有向グラフがあるとします。エッジは{(0,2)、(0,3)、(1,0)、(1,3)、(2、 1)}なので、隣接関係lol(それを呼び出すa
)は
a = [[2,3],[0,3],[1],[]]
私は今、発生率を見つけたいと思います。つまり、どのノードがどのノードにインシデントであるかを示すリストのリストです。この例では、発生率lol(それを呼び出しますb
)は次のようになります。
[[1], [2], [0], [0, 1]]
次のコードを試しました。
b = [[],[],[],[]]
[b[j].append(i) for i,x in enumerate(a) for j in x]
これにより、正しい接続行列が得られますb
。
2番目のステップは機能しますが、理想的には開閉b[j].append(i) for i,x in enumerate(a) for j in x
なしで行う必要があります。しかし、Pythonインタープリターはそれなしで構文エラーを叫びます。それを言い表すより良い方法はありますか?[
]