回答編集履歴

3

変な文字の削除

2018/02/03 02:31

投稿

YouheiSakurai
YouheiSakurai

スコア6142

test CHANGED
@@ -1,4 +1,4 @@
1
- functools.partial`XxxPoolExecutor`に限らない`map`の使い方の話ですね。
1
+ `XxxPoolExecutor`に限らない`map`の使い方の話ですね。
2
2
 
3
3
 
4
4
 

2

注意点追加

2018/02/03 02:31

投稿

YouheiSakurai
YouheiSakurai

スコア6142

test CHANGED
@@ -1,4 +1,4 @@
1
- `XxxPoolExecutor`に限らない`map`の使い方の話ですね。
1
+ functools.partial`XxxPoolExecutor`に限らない`map`の使い方の話ですね。
2
2
 
3
3
 
4
4
 
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- あとよくある、`引数1`はリストだけど`引数2`は固定値、という場合は以下のように書きます。
37
+ あとよくある、`引数1`はリストだけど`引数2`は固定値、という場合は以下のように書きます。※`functools.partial`ではCで書かれた関数の第2引数固定ができなかったりするので、`itertools.repeat`のほうが汎用的にどこでも使えます。
38
38
 
39
39
 
40
40
 

1

パターン追加

2018/02/03 02:29

投稿

YouheiSakurai
YouheiSakurai

スコア6142

test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ```python
6
6
 
7
- def 自作関数(引数1,引数2):
7
+ def 自作関数(引数1, 引数2):
8
8
 
9
9
  処理内容
10
10
 
@@ -27,3 +27,45 @@
27
27
 
28
28
 
29
29
  と書けば、`自作関数(1, 4)`->`自作関数(2, 5)`->`自作関数(3, 6)`と順次よばれて、その各戻り値`r`を使用してFOR文を回せます。
30
+
31
+
32
+
33
+ # 追記
34
+
35
+
36
+
37
+ あとよくある、`引数1`はリストだけど`引数2`は固定値、という場合は以下のように書きます。
38
+
39
+
40
+
41
+ ## 引数2の固定パターン1: functools.partial
42
+
43
+ ```python
44
+
45
+ from functools import partial
46
+
47
+
48
+
49
+ ループ用関数 = partial(自作関数, 引数2=固定値)
50
+
51
+ for r in map(ループ用関数, 引数リスト1):
52
+
53
+ ....
54
+
55
+ ```
56
+
57
+
58
+
59
+ ## 引数2の固定パターン2: itertools.repeat
60
+
61
+ ```python
62
+
63
+ from itertools import repeat
64
+
65
+
66
+
67
+ for r in map(自作関数, 引数リスト1, repeat(固定値)):
68
+
69
+ ....
70
+
71
+ ```