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

回答編集履歴

3

tuple->list

2018/06/11 17:02

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -20,12 +20,12 @@
20
20
 
21
21
  # 追記2:恥ずかしいくらい遅いので本気を出す
22
22
 
23
- 慣れないnumpyを使わずに2dのtupleにして素直に書いた方が結果自己記録的に速かった。
23
+ 慣れないnumpyを使わずに2dのtuple->listにして素直に書いた方が結果自己記録的に速かった。
24
24
 
25
25
  ```python
26
26
  import numpy as np
27
27
 
28
- t = (95, 96, 97, 98)
28
+ t = [95, 96, 97, 98]
29
- A = tuple(map(tuple, np.arange(50000).reshape((10000, 5))))
29
+ A = tuple(map(list, np.arange(50000).reshape((10000, 5))))
30
30
  tuple(last for *first, last in A if first == t)
31
31
  ```

2

追記2

2018/06/11 17:02

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -16,4 +16,16 @@
16
16
  ```python
17
17
  ans = tuple(v[-1] for v in map(memoryview, A) if v[:view_size] == view)
18
18
  print(ans)
19
+ ```
20
+
21
+ # 追記2:恥ずかしいくらい遅いので本気を出す
22
+
23
+ 慣れないnumpyを使わずに2dのtupleにして素直に書いた方が結果自己記録的に速かった。
24
+
25
+ ```python
26
+ import numpy as np
27
+
28
+ t = (95, 96, 97, 98)
29
+ A = tuple(map(tuple, np.arange(50000).reshape((10000, 5))))
30
+ tuple(last for *first, last in A if first == t)
19
31
  ```

1

For文を内包記法に

2018/06/11 16:57

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -9,4 +9,11 @@
9
9
  for row in A:
10
10
  if memoryview(row)[:view_size] == view:
11
11
  print(row[-1])
12
+ ```
13
+
14
+ # 追記
15
+
16
+ ```python
17
+ ans = tuple(v[-1] for v in map(memoryview, A) if v[:view_size] == view)
18
+ print(ans)
12
19
  ```