質問編集履歴
2
誤字の修正。不要な情報を削除
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
実際には、`all_groups`のサイズが数百万〜数千万件あり、メモリやCPUなどのリソースは潤沢という前提で、これをなるべく早く処理したいのですが、冴えた方法が思いつかず、良い方法があれば教えていただけると非常に助かります。
|
12
12
|
|
13
13
|
### 試したこと
|
14
|
-
昨日から、以下のコードで実行して
|
14
|
+
昨日から、以下のコードで実行してみてるのですが、数千万件を処理すると1日経っても返ってこない状況です。
|
15
15
|
```python
|
16
16
|
from typing import List, Set
|
17
17
|
|
@@ -36,10 +36,4 @@
|
|
36
36
|
unified_groups.append(unified_group)
|
37
37
|
|
38
38
|
return unified_groups
|
39
|
-
```
|
40
|
-
|
41
|
-
|
42
|
-
`detected_unified_groups`を生成する部分を以下のようにlambda式で実装すると、遅くなりました。
|
43
|
-
```python
|
44
|
-
detected_unified_groups: List[Set[int]] = list(filter(lambda ug: ug.isdisjoint(group) is False, unified_groups))
|
45
39
|
```
|
1
typoの修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
2
|
python v3.7.4で、List内のSetを特定の条件で高速に結合したいです。
|
3
3
|
|
4
|
-
具体的には、以下の様な
|
4
|
+
具体的には、以下の様なListをインプットとして、
|
5
5
|
例) `all_groups: List[Set[int]] = [{1, 2}, {2, 3}, {4, 5, 6}, {7, 8, 9}, {6, 8, 9}, {8, 10}, {11, 12}, {1, 2}, {2, 3}]`
|
6
6
|
|
7
|
-
|
7
|
+
List内のSet同士を比較し、Set内に同一の数字が含まれる場合はSetを結合していき、最終的に
|
8
8
|
例) `unified_groups: List[Set[int]] = [{1, 2, 3}, {4, 5, 6, 7, 8, 9, 10}, {11, 12}]`
|
9
9
|
の様なリストを作成したいです。
|
10
10
|
|