回答編集履歴

2

oprator モジュールを使わないで lamda 式を直接書いた。

2016/03/11 07:25

投稿

ef3
ef3

スコア10

test CHANGED
@@ -18,11 +18,9 @@
18
18
 
19
19
 
20
20
 
21
- [NumPy](http://www.numpy.org/) を使わずイテレータを使った場合(乗算演算子のラムダ式を使うので operator モジュール の mul を使っています)
21
+ [NumPy](http://www.numpy.org/) を使わずイテレータを使った場合。
22
22
 
23
23
  ```python
24
-
25
- from operator import mul
26
24
 
27
25
  a1 = [1,2,3]
28
26
 
@@ -30,6 +28,16 @@
30
28
 
31
29
 
32
30
 
33
- print sum(map(mul, a1, a2))
31
+ print sum(map(lambda x, y: x * y, a1, a2))
34
32
 
35
33
  ```
34
+
35
+
36
+
37
+ リスト内包表現と zip の組み合わせの方が python ぽいかもしれません。
38
+
39
+ ```python
40
+
41
+ reduce(lambda x, y: x + y, [x * y for x, y in zip(a1, a2)])
42
+
43
+ ```

1

NumPyを使わないでmapを使う例を追加

2016/03/11 07:25

投稿

ef3
ef3

スコア10

test CHANGED
@@ -1,4 +1,4 @@
1
- Python では [numpy](http://www.numpy.org/) を使うと dot 関数でベクトルの内積を求めることが出来ます。
1
+ Python では [NumPy](http://www.numpy.org/) を使うと dot 関数でベクトルの内積を求めることが出来ます。
2
2
 
3
3
  ```python
4
4
 
@@ -15,3 +15,21 @@
15
15
  print np.dot(v1,v2)
16
16
 
17
17
  ```
18
+
19
+
20
+
21
+ [NumPy](http://www.numpy.org/) を使わずイテレータを使った場合(乗算演算子のラムダ式を使うので operator モジュール の mul を使っています)。
22
+
23
+ ```python
24
+
25
+ from operator import mul
26
+
27
+ a1 = [1,2,3]
28
+
29
+ a2 = [4,5,6]
30
+
31
+
32
+
33
+ print sum(map(mul, a1, a2))
34
+
35
+ ```