回答編集履歴
3
tuple->list
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 =
|
28
|
+
t = [95, 96, 97, 98]
|
29
|
-
A = tuple(map(
|
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
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文を内包記法に
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
|
```
|