[解決済み] Pythonのpool.map()関数に複数のパラメータを渡す [重複] [重複
2023-07-30 14:38:56
質問
pool.map()内で、複数のパラメータを受け取る関数を使用する方法が必要です。私の理解では、pool.map()のターゲット関数は、パラメータとして1つのイテラブルを持つことができるだけですが、同様に他のパラメータを渡すことができる方法があるでしょうか?この場合、私はターゲット関数に私のLock()とロギング情報のようないくつかの構成変数を渡す必要があります。
私はいくつかの研究を試みました、そして、私はそれを動作させるために部分的な関数を使用することができるかもしれないと思います?しかし、これらがどのように動作するか完全に理解しているわけではありません。どんな助けでも大いに感謝します! 以下は、私がやりたいことの簡単な例です。
def target(items, lock):
for item in items:
# Do cool stuff
if (... some condition here ...):
lock.acquire()
# Write to stdout or logfile, etc.
lock.release()
def main():
iterable = [1, 2, 3, 4, 5]
pool = multiprocessing.Pool()
pool.map(target(PASS PARAMS HERE), iterable)
pool.close()
pool.join()
どのように解決するのですか?
あなたは
functools.partial
を使うことができます(お察しの通り)。
from functools import partial
def target(lock, iterable_item):
for item in iterable_item:
# Do cool stuff
if (... some condition here ...):
lock.acquire()
# Write to stdout or logfile, etc.
lock.release()
def main():
iterable = [1, 2, 3, 4, 5]
pool = multiprocessing.Pool()
l = multiprocessing.Lock()
func = partial(target, l)
pool.map(func, iterable)
pool.close()
pool.join()
例
def f(a, b, c):
print("{} {} {}".format(a, b, c))
def main():
iterable = [1, 2, 3, 4, 5]
pool = multiprocessing.Pool()
a = "hi"
b = "there"
func = partial(f, a, b)
pool.map(func, iterable)
pool.close()
pool.join()
if __name__ == "__main__":
main()
出力します。
hi there 1
hi there 2
hi there 3
hi there 4
hi there 5
関連
-
[解決済み] マルチプロセシングpool.mapを複数の引数で使用する方法
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] オブジェクトのためのマップ関数(配列の代わりに)
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] マルチプロセシングpool.mapを複数の引数で使用する方法
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?