teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

a

2018/10/11 03:09

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -45,4 +45,25 @@
45
45
 
46
46
  ```
47
47
 
48
- ![イメージ説明](f61192a181a6ebb1195c05d1d3db3b62.png)
48
+ ![イメージ説明](f61192a181a6ebb1195c05d1d3db3b62.png)
49
+
50
+ ## 追記
51
+
52
+ 標準ライブラリのみを使った隣接リスト作成の例
53
+
54
+ ```python
55
+ edges = [(1, 2), (2, 1), (1, 4), (4, 1), (2, 4), (4, 2),
56
+ (4, 3), (3, 4), (4, 5), (5, 4), (3, 5), (5, 3)]
57
+
58
+ adj_list = {}
59
+ from itertools import groupby
60
+ for key, group in groupby(sorted(edges), key=lambda x: x[0]):
61
+ conn_to = [g[1] for g in group] # edge=key が接続しているノード一覧
62
+ adj_list[key] = conn_to
63
+
64
+ print(adj_list)
65
+ ```
66
+
67
+ ```
68
+ {1: [2, 4], 2: [1, 4], 3: [4, 5], 4: [1, 2, 3, 5], 5: [3, 4]}
69
+ ```