【发布时间】:2015-11-17 07:18:49
【问题描述】:
在我看来itertools 模块中的许多函数都有更简单的等效项。例如,据我所知,itertools.islice(range(10),2,5) 和range(10)[2:5] 做同样的事情,itertools.chain([1,2,3],[4,5,6]) 和[1,2,3]+[4,5,6] 做同样的事情。主文档页面提到了速度优势,但除此之外还有什么理由选择 itertools?
【问题讨论】:
-
他们并没有真正做同样的事情。 itertools.islice()、range() 和 itertools.chain() 返回不同的对象。最后,这些对象的行为相同,但在您的情况下,如果速度很重要,我会考虑比较字节码。