在 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 -- http://mail.python.org/mailman/listinfo/python-list