回答編集履歴

1

a

2018/10/11 03:09

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -93,3 +93,45 @@
93
93
 
94
94
 
95
95
  ![イメージ説明](f61192a181a6ebb1195c05d1d3db3b62.png)
96
+
97
+
98
+
99
+ ## 追記
100
+
101
+
102
+
103
+ 標準ライブラリのみを使った隣接リスト作成の例
104
+
105
+
106
+
107
+ ```python
108
+
109
+ edges = [(1, 2), (2, 1), (1, 4), (4, 1), (2, 4), (4, 2),
110
+
111
+ (4, 3), (3, 4), (4, 5), (5, 4), (3, 5), (5, 3)]
112
+
113
+
114
+
115
+ adj_list = {}
116
+
117
+ from itertools import groupby
118
+
119
+ for key, group in groupby(sorted(edges), key=lambda x: x[0]):
120
+
121
+ conn_to = [g[1] for g in group] # edge=key が接続しているノード一覧
122
+
123
+ adj_list[key] = conn_to
124
+
125
+
126
+
127
+ print(adj_list)
128
+
129
+ ```
130
+
131
+
132
+
133
+ ```
134
+
135
+ {1: [2, 4], 2: [1, 4], 3: [4, 5], 4: [1, 2, 3, 5], 5: [3, 4]}
136
+
137
+ ```