“太多的价值无法解压”
“Too many values to unpack”
我有一个函数可以批量预处理图像以转发给caffe作为输入,它类似于下面和return两个变量。
def processImageCrop(im_info, transformer, flowtransformer):
.....
return processed_image, processed_flowimage
class ImageProcessorCrop(object):
def __init__(self, transformer, flowtransformer):
self.transformer = transformer
self.flowtransformer = flowtransformer
#self.flow = flow
def __call__(self, im_info):
return processImageCrop(im_info, self.transformer, self.flowtransformer) #, self.flow)
我用 pool.map 发送 im_info 参数调用此函数,并想按如下方式分配 returned 的两个变量,但出现异常 Too many values to unpack。两个变量的长度都应为 192。如何分配 returned 值?谢谢。我不想遍历每个元素,而是 return 两个值并将它们分配给两个变量。
结果['data'] , 结果['flowdata'] = pool.map(image_processor, im_info)
您的 pool.map
调用将转到 return 一个列表,其中包含对 im_info
中的每个值调用一次可调用对象 class 的结果。如果 im_info
有两个以上的值,将列表解包为两个变量的赋值将不起作用。
如果您真的想解包列表中的二元组,您可能想使用 zip
转置数据:
result['data'], result['flowdata'] = zip(*pool.map(image_processor, im_info))
我有一个函数可以批量预处理图像以转发给caffe作为输入,它类似于下面和return两个变量。
def processImageCrop(im_info, transformer, flowtransformer):
.....
return processed_image, processed_flowimage
class ImageProcessorCrop(object):
def __init__(self, transformer, flowtransformer):
self.transformer = transformer
self.flowtransformer = flowtransformer
#self.flow = flow
def __call__(self, im_info):
return processImageCrop(im_info, self.transformer, self.flowtransformer) #, self.flow)
我用 pool.map 发送 im_info 参数调用此函数,并想按如下方式分配 returned 的两个变量,但出现异常 Too many values to unpack。两个变量的长度都应为 192。如何分配 returned 值?谢谢。我不想遍历每个元素,而是 return 两个值并将它们分配给两个变量。
结果['data'] , 结果['flowdata'] = pool.map(image_processor, im_info)
您的 pool.map
调用将转到 return 一个列表,其中包含对 im_info
中的每个值调用一次可调用对象 class 的结果。如果 im_info
有两个以上的值,将列表解包为两个变量的赋值将不起作用。
如果您真的想解包列表中的二元组,您可能想使用 zip
转置数据:
result['data'], result['flowdata'] = zip(*pool.map(image_processor, im_info))