当前位置: 首页 > 面试题库 >

Python使用多个输入对函数进行多处理

易雅畅
2023-03-14
问题内容

在Python中,该multiprocessing模块可用于在一系列值上并行运行函数。例如,这将生成f的前100000个评估的列表。

def f(i):
    return i * i

def main():
    import multiprocessing
    pool = multiprocessing.Pool(2)
    ans = pool.map(f, range(100000))

    return ans

当f接受多个输入而只有一个变量变化时,是否可以做类似的事情?例如,如何并行处理此:

def f(i, n):
    return i * i + 2*n

def main():
    ans = []
    for i in range(100000):
        ans.append(f(i, 20))

    return ans

问题答案:

有几种方法可以做到这一点。在问题给出的示例中,您可以定义一个包装函数

def g(i):
    return f(i, 20)

然后将此包装传递给map()。一种更通用的方法是使用一个包装器,该包装器使用一个元组参数并将该元组解包为多个参数

def g(tup):
    return f(*tup)

或使用等效的lambda表达式:lambda tup: f(*tup)



 类似资料:
  • 问题内容: 我想知道如何编写一个可以接受多行输入的简单程序,然后可以像在lynx浏览器中一样提交输入,在该浏览器中您可以使用空白行然后使用句点来提交输入。 我想在电子邮件程序中使用它。 问题答案: 这是一个简单的方法:

  • 文档显示了如何使用以输出列名为键的dict一次对groupby对象应用多个函数: 但是,这只对Series groupby对象有效。并且当类似地将dict传递给groupby数据帧时,它希望键是将应用该函数的列名。 我想做的是对几个列应用多个函数(但某些列将被多次操作)。此外,一些函数将依赖于groupby对象中的其他列(如sumif函数)。我当前的解决方案是逐列执行,并执行与上面的代码类似的操作

  • 问题内容: 我的一个朋友要我实现一个蓝色和红色指针来代表两只单独的鼠标的输入,以加快用于实时音频混合的混合台场景。我很乐意,但是尽管我认为这是个好主意,但我不知道从哪里开始寻找可能的解决方案。 我应该从哪里开始研究实现双鼠标输入的可行方法? 问题答案: 看一下jinput。 我已经使用了多个键盘,几乎可以肯定它也支持多个鼠标。

  • 本文向大家介绍Python使用多进程运行含有任意个参数的函数,包括了Python使用多进程运行含有任意个参数的函数的使用技巧和注意事项,需要的朋友参考一下 1. 问题引出 许多时候,我们对程序的速度都是有要求的,速度自然是越快越好。对于Python的话,一般都是使用multiprocessing这个库来实现程序的多进程化,例如: 我们有一个函数my_print,它的作用是打印我们的输入: def

  • 问题内容: 我有以下形式的文本输入: 我试图让它接受多行输入。宽度和高度会使框变大,但用户可以输入所有想要的文本,但它只能填充一行。 如何使输入更像文本区域? 问题答案: 您需要使用文本区域进行多行处理。