Python itertools';islice(计数()与范围()的比较
非常快的一个: 我刚刚看到了一个例子,它们显示我们可以一起使用itertools的islice()和count(),如下所示:Python itertools';islice(计数()与范围()的比较,python,iterator,itertools,Python,Iterator,Itertools,非常快的一个: 我刚刚看到了一个例子,它们显示我们可以一起使用itertools的islice()和count(),如下所示: for num in islice(count(), start, stop, step): print(num) 这样做而不是使用range()有什么好处吗 这样做而不是使用range()有什么好处吗 在本例中没有优势,range将是规范的解决方案 itertools.islice如果您有一个任意迭代器(尤其是没有随机访问行为,如range),则变得非常重要
for num in islice(count(), start, stop, step):
print(num)
这样做而不是使用range()有什么好处吗
这样做而不是使用range()有什么好处吗
在本例中没有优势,range
将是规范的解决方案
itertools.islice
如果您有一个任意迭代器(尤其是没有随机访问行为,如range),则变得非常重要。
假设您打开了一个文件,希望忽略前四行,然后每隔一行打印一次。
对于islice,这变得简单:
打开(路径'r')作为f:
对于islice中的线路(f,开始=5,停止=无,步骤=2):
打印(行)
islice
与计数器
的一种可能组合,不能用范围
替换,即如果您有一个非结束循环(stop=None
)。假设您要打印从三开始的所有素数
numbers=islice(count(),start=3,stop=None,step=2):
对于不均匀_数中的num:
如果是_素数(num):
打印(个)
这里特别重要的一点是,
不均匀数
是一个生成器,而不是一个列表(这肯定会占用您的内存)。本教程并不建议这是范围
的理想替代方案。这只是一个人为的例子,用来演示这些函数的用法。