在python中使用多处理lib中的pool.map()。收到以下错误:
IndexError: string index out of range
这是否可能来自超出范围的变量(列表)?如果是这样我该怎么调试呢?没有解释错误发生的位置。
代码的更多解释:
(编辑)
def myFunction(list):
# function contents
for item in list:
# do tasks
with closing(Pool(processes=2)) as pool:
pool.map(myFunction, sublist)
pool.map(myFunction2, sublist2)
答案 0 :(得分:4)
答案在于我对pool.map(func, iterable)
方法的误解。
上一个函数myFunction()
使用for循环遍历列表对象。在实现pool.map()
之后我把它留在了函数中,所以我精心准备的所有任务由于for
循环而更深入了另一层。
解决方案是一个简单的例子,删除for循环并调整一些代码看起来更像这样:
def myFunction(list):
# do tasks
# for loop contents....
这么简单,但是我没有意识到首先应该如何使用.map()
方法。感谢@dano指出需要查看的内容。