executor.map() TypeError: zip argument #2 must support iteration

iMath redstone-cold at 163.com
Tue Apr 2 22:34:25 EDT 2013


在 2013年4月1日星期一UTC+8下午3时48分34秒,Steven D'Aprano写道:
> On Sun, 31 Mar 2013 21:45:21 -0700, iMath wrote:
> 
> 
> 
> > executor.map()    TypeError: zip argument #2 must support iteration
> 
> > 
> 
> > when I run it ,just generated TypeError: zip argument #2 must support
> 
> > iteration. can anyone help me fix this problem ?
> 
> 
> 
> Yes. Read the error message, and inspect the line that is in error. You 
> 
> have:
> 
> 
> 
> >     future_to_url = executor.map(str,lst100, 60)
> 
> 
> 
> executor.map has three arguments:
> 
> 
> 
> Arg 0: str
> 
> Arg 1: list of 100 ints
> 
> Arg 2: int 60
> 
> 
> 
> Argument 2, the number 60, does not support iteration, since it is an int.
> 
> 
> 
> Now read the docs for map. At the interactive interpreter, do this:
> 
> 
> 
> py> from concurrent.futures import ThreadPoolExecutor
> 
> py> help(ThreadPoolExecutor.map)
> 
> 
> 
> 
> 
> and you will see the following documentation:
> 
> 
> 
> map(self, fn, *iterables, timeout=None)
> 
>     Returns a iterator equivalent to map(fn, iter).
> 
> 
> 
>     Args:
> 
>         fn: A callable that will take take as many arguments as there are
> 
>             passed iterables.
> 
>         timeout: The maximum number of seconds to wait. If None, then
> 
>             there is no limit on the wait time.
> 
> 
> 
> 
> 
> Notice that the iterables argument is prefixed with * symbol. That means 
> 
> that it collects all the remaining positional arguments, which means that 
> 
> the timeout argument is keyword only.
> 
> 
> 
> So try this:
> 
> 
> 
> 
> 
> future_to_url = executor.map(str, lst100, timeout=60)
> 
> 
> 
> 
> 
> -- 
> 
> Steven

thanks for  clarification.I thought argument 2 is lst100



More information about the Python-list mailing list