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

回答編集履歴

3

変な文字の削除

2018/02/03 02:31

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -1,4 +1,4 @@
1
- functools.partial`XxxPoolExecutor`に限らない`map`の使い方の話ですね。
1
+ `XxxPoolExecutor`に限らない`map`の使い方の話ですね。
2
2
 
3
3
  ```python
4
4
  def 自作関数(引数1, 引数2):

2

注意点追加

2018/02/03 02:31

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -1,4 +1,4 @@
1
- `XxxPoolExecutor`に限らない`map`の使い方の話ですね。
1
+ functools.partial`XxxPoolExecutor`に限らない`map`の使い方の話ですね。
2
2
 
3
3
  ```python
4
4
  def 自作関数(引数1, 引数2):
@@ -16,7 +16,7 @@
16
16
 
17
17
  # 追記
18
18
 
19
- あとよくある、`引数1`はリストだけど`引数2`は固定値、という場合は以下のように書きます。
19
+ あとよくある、`引数1`はリストだけど`引数2`は固定値、という場合は以下のように書きます。※`functools.partial`ではCで書かれた関数の第2引数固定ができなかったりするので、`itertools.repeat`のほうが汎用的にどこでも使えます。
20
20
 
21
21
  ## 引数2の固定パターン1: functools.partial
22
22
  ```python

1

パターン追加

2018/02/03 02:29

投稿

YouheiSakurai
YouheiSakurai

スコア6151

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  `XxxPoolExecutor`に限らない`map`の使い方の話ですね。
2
2
 
3
3
  ```python
4
- def 自作関数(引数1,引数2):
4
+ def 自作関数(引数1, 引数2):
5
5
  処理内容
6
6
  ```
7
7
 
@@ -12,4 +12,25 @@
12
12
  ....
13
13
  ```
14
14
 
15
- と書けば、`自作関数(1, 4)`->`自作関数(2, 5)`->`自作関数(3, 6)`と順次よばれて、その各戻り値`r`を使用してFOR文を回せます。
15
+ と書けば、`自作関数(1, 4)`->`自作関数(2, 5)`->`自作関数(3, 6)`と順次よばれて、その各戻り値`r`を使用してFOR文を回せます。
16
+
17
+ # 追記
18
+
19
+ あとよくある、`引数1`はリストだけど`引数2`は固定値、という場合は以下のように書きます。
20
+
21
+ ## 引数2の固定パターン1: functools.partial
22
+ ```python
23
+ from functools import partial
24
+
25
+ ループ用関数 = partial(自作関数, 引数2=固定値)
26
+ for r in map(ループ用関数, 引数リスト1):
27
+ ....
28
+ ```
29
+
30
+ ## 引数2の固定パターン2: itertools.repeat
31
+ ```python
32
+ from itertools import repeat
33
+
34
+ for r in map(自作関数, 引数リスト1, repeat(固定値)):
35
+ ....
36
+ ```