繁体   English   中英

executor.map()TypeError:zip参数#2必须支持迭代

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

executor.map()TypeError:zip参数#2必须支持迭代

当我运行它时,只生成TypeError:zip参数#2必须支持迭代。 任何人都可以帮我解决这个问题吗?

import time, concurrent.futures
lst100=[i for i in range(100)]

t1=time.clock()
print(list(map(str,lst100)))
t2=time.clock()
print(t2-t1)

t3=time.clock()
with concurrent.futures.ThreadPoolExecutor(max_workers=100) as executor:
    future_to_url = executor.map(str,lst100, 60)
    print(list(future_to_url))
t4=time.clock()
print(t4-t3)

concurrent.futures.Executor.map在语义上与内置函数map 第二个和后续的非关键字参数指定要应用给定函数的迭代。

在你的情况下,你说“这是两个迭代:100个元素的列表( lst100 )和整数60.请分别在两个元素ab上调用函数str() ,分别来自两个迭代,并且返回结果列表。“ 但由于整数60实际上不是可迭代对象,因此失败。

假设您要指定60秒的超时,则需要将其作为关键字参数传递,如下所示:

future_to_url = executor.map(str, lst100, timeout=60)

通过在传递值之前存在name=前缀,关键字参数与位置参数区分开来。 在这种情况下,参数名称为timeout

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM