gpt4 book ai didi

python - 使用 ThreadPoolExecutor 的 Map 传递多个值

转载 作者:太空宇宙 更新时间:2023-11-04 11:16:38 24 4
gpt4 key购买 nike

我正在尝试找出如何使用 current.futures 库中的 ThreadPoolExecutor.map()。我正在使用 Python 3.6。

下面是代码

import concurrent.futures
def add(x,y):
return x+y

with concurrent.futures.ThreadPoolExecutor(1) as executor:
res = executor.map(add, *(1,2)) # Fails

我的问题是,当我传递参数时,出现以下错误:

builtins.TypeError: zip argument #1 must support iteration

Python 文档上的示例仅显示使用一个变量作为输入,但我想为 map 函数使用 N 个变量。我该怎么做?

我真的在这个问题上摸不着头脑,如果有人能指出我需要如何格式化我的输入参数,我将不胜感激。

我希望能够做这样的事情:

import concurrent.futures
def add(x,y):
return x+y

numbers = [
(1,2), (2,3), (3,10)
]

with concurrent.futures.ThreadPoolExecutor(1) as executor:
res = executor.map(add, *numbers)

请告诉我如何格式化参数输入。

最佳答案

您可以使用 lambda 来执行以下操作:

import concurrent.futures
def add(x,y):
return x+y
numbers = [(1,2), (2,3), (3,10)]
with concurrent.futures.ThreadPoolExecutor(1) as executor:
res = executor.map(lambda args : add(*args), numbers)

关于python - 使用 ThreadPoolExecutor 的 Map 传递多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56870423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com