Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在多处理池中传递字符串列表时出错。starmap_Python_Python 3.x - Fatal编程技术网

Python 在多处理池中传递字符串列表时出错。starmap

Python 在多处理池中传递字符串列表时出错。starmap,python,python-3.x,Python,Python 3.x,我在尝试一些网络垃圾。我正在将一个包含URL的列表传递给pool.starmap,我遇到了一个错误。显示我的代码的简化版本: 有人能帮我吗? 如果我做了傻事,我也很抱歉 来自multiprocessing.dummy导入池 def func(x): 打印(x) s=[“猫”、“福”、“吧”、“你”、“和”、“我”]#此列表包含约50个实际代码的URL 使用Pool()作为池: pool.starmap(func,s) 这给了我一个错误: Traceback (most recent call

我在尝试一些网络垃圾。我正在将一个包含URL的列表传递给pool.starmap,我遇到了一个错误。显示我的代码的简化版本:

有人能帮我吗? 如果我做了傻事,我也很抱歉


来自multiprocessing.dummy导入池
def func(x):
打印(x)
s=[“猫”、“福”、“吧”、“你”、“和”、“我”]#此列表包含约50个实际代码的URL
使用Pool()作为池:
pool.starmap(func,s)
这给了我一个错误:

Traceback (most recent call last):                                                                                                          
File "g.py", line 8, in <module>                                                                                                            
  pool.starmap(func,s)                                                                                                                    
File "C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py", line 274, in starmap                                                          return 
  self._map_async(func, iterable, starmapstar, chunksize).get()                                                                    
File "C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py", line 644, in get                                                              
  raise self._value                                                                                                                       
File "C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py", line 119, in worker
  result = (True, func(*args, **kwds))                                                                                                    
File "C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py", line 47, in starmapstar
  return list(itertools.starmap(args[0], args[1]))                                                                                      
TypeError: func() takes 1 positional argument but 3 were given
回溯(最近一次呼叫最后一次):
文件“g.py”,第8行,在
pool.starmap(func,s)
文件“C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py”,第274行,在星图返回中
self.\u map\u async(func,iterable,starmapstar,chunksize).get()
文件“C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py”,第644行,在get中
提升自我价值
文件“C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py”,第119行,在worker中
结果=(True,func(*args,**kwds))
文件“C:\Users\Gunjan\Anaconda3\lib\multiprocessing\pool.py”,第47行,在starmapstar中
返回列表(itertools.starmap(args[0],args[1]))
TypeError:func()接受1个位置参数,但给出了3个

您需要使用常规的
映射()

尝试:

来自multiprocessing.dummy导入池的

def func(x):
打印(x)
s=[“猫”、“福”、“吧”、“你”、“和”、“我”]#此列表包含约50个实际代码的URL
使用Pool()作为池:
pool.map(func,s)
starmap()
要求列表中的每个元素本身都是一个iterable,并将内部iterable的元素args传递给
func

您的元素是字符串,可以按字符划分, 所以第一个元素的星图叫做
func('c','a','t')
,等等

以下是两个函数的定义+文档字符串:

def映射(self、func、iterable、chunksize=None):
'''
将'func'应用于'iterable'中的每个元素,并收集结果
在返回的列表中。
'''
返回self.\u map\u async(func、iterable、mapstar、chunksize).get()
def星图(self、func、iterable、chunksize=None):
'''
类似于'map()'方法,但'iterable'的元素应
也可以是iterables,并将作为参数解包。因此
`func`和(a,b)变成func(a,b)。
'''
返回self.\u map\u async(func,iterable,starmapstar,chunksize).get()

星图
需要一个iterables列表。检查因此,请改用
map

发布完整的工作示例代码来帮助您。