Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #42619

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

Newsgroups comp.lang.python
Date 2013-04-02 19:34 -0700
References <29b241a1-44ce-45a0-81b6-429245931c05@googlegroups.com> <51593bd2$0$29967$c3e8da3$5496439d@news.astraweb.com>
Message-ID <f02fb4c3-944e-4a1f-8803-987f319fbabf@googlegroups.com> (permalink)
Subject Re: executor.map() TypeError: zip argument #2 must support iteration
From iMath <redstone-cold@163.com>

Show all headers | View raw


在 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

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

executor.map()    TypeError: zip argument #2 must support iteration iMath <redstone-cold@163.com> - 2013-03-31 21:45 -0700
  Re: executor.map()    TypeError: zip argument #2 must support iteration Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-04-01 07:48 +0000
    Re: executor.map()    TypeError: zip argument #2 must support iteration iMath <redstone-cold@163.com> - 2013-04-02 19:34 -0700

csiph-web