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

質問編集履歴

2

誤字の修正。不要な情報を削除

2020/01/14 00:44

投稿

rinoguchi
rinoguchi

スコア9

title CHANGED
File without changes
body CHANGED
@@ -11,7 +11,7 @@
11
11
  実際には、`all_groups`のサイズが数百万〜数千万件あり、メモリやCPUなどのリソースは潤沢という前提で、これをなるべく早く処理したいのですが、冴えた方法が思いつかず、良い方法があれば教えていただけると非常に助かります。
12
12
 
13
13
  ### 試したこと
14
- 昨日から、以下のコードで実行しててるのですが、数千万件を処理すると1日経っても返ってこない状況です。
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の修正

2020/01/14 00:44

投稿

rinoguchi
rinoguchi

スコア9

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
- リスト内のSET同士を比較し、SET内に同一の数字が含まれる場合はSETを結合していき、最終的に
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