Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python itertools';islice(计数()与范围()的比较_Python_Iterator_Itertools - Fatal编程技术网

Python itertools';islice(计数()与范围()的比较

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),则变得非常重要

非常快的一个:

我刚刚看到了一个例子,它们显示我们可以一起使用itertools的islice()和count(),如下所示:

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):
打印(个)

这里特别重要的一点是,
不均匀数
是一个生成器,而不是一个列表(这肯定会占用您的内存)。

本教程并不建议这是
范围
的理想替代方案。这只是一个人为的例子,用来演示这些函数的用法。