回答編集履歴
3
修正
answer
CHANGED
@@ -15,10 +15,11 @@
|
|
15
15
|
# 結果リストに対して、関数リストを適用
|
16
16
|
for f in function:
|
17
17
|
|
18
|
-
tmp = []
|
18
|
+
tmp = [] # f の適用結果を記録する一時的な配列
|
19
|
-
for x in numbers:
|
19
|
+
for x in numbers:
|
20
20
|
y = f(x)
|
21
21
|
tmp.append(y)
|
22
|
+
|
22
23
|
numbers += tmp
|
23
24
|
|
24
25
|
print(numbers)
|
2
修正
answer
CHANGED
@@ -2,8 +2,6 @@
|
|
2
2
|
では、`for y in numbers` 内で `append()` すればいいのかというと、ループするたびにリストに要素を1つ追加していくと、無限ループになってしまうので、一旦別の配列に `res` の値を append() していき、ループを抜けたら、`numbers` に追加する形にすれば、意図通りに動きます。
|
3
3
|
|
4
4
|
```python
|
5
|
-
import numpy as np
|
6
|
-
|
7
5
|
# 関数の定義
|
8
6
|
bai2 = lambda x: x * 2
|
9
7
|
bai3 = lambda x: x * 3
|
@@ -29,8 +27,6 @@
|
|
29
27
|
map() を使って簡潔に書くなら以下のように改善できます。
|
30
28
|
|
31
29
|
```python
|
32
|
-
import numpy as np
|
33
|
-
|
34
30
|
# 関数の定義
|
35
31
|
bai2 = lambda x: x * 2
|
36
32
|
bai3 = lambda x: x * 3
|
1
修正
answer
CHANGED
@@ -24,7 +24,26 @@
|
|
24
24
|
numbers += tmp
|
25
25
|
|
26
26
|
print(numbers)
|
27
|
+
```
|
27
28
|
|
29
|
+
map() を使って簡潔に書くなら以下のように改善できます。
|
30
|
+
|
31
|
+
```python
|
28
|
-
|
32
|
+
import numpy as np
|
33
|
+
|
34
|
+
# 関数の定義
|
35
|
+
bai2 = lambda x: x * 2
|
36
|
+
bai3 = lambda x: x * 3
|
37
|
+
|
38
|
+
# 関数用リスト
|
29
|
-
|
39
|
+
function = [bai2, bai3]
|
40
|
+
|
41
|
+
# 結果リスト
|
42
|
+
numbers = [1]
|
43
|
+
|
44
|
+
# 結果リストに対して、関数リストを適用
|
45
|
+
for f in function:
|
46
|
+
numbers += list(map(f, numbers))
|
47
|
+
|
48
|
+
print(numbers)
|
30
49
|
```
|