用法:
itertools.islice(iterable, stop)
itertools.islice(iterable, start, stop[, step])
创建一个从可迭代对象中返回选定元素的迭代器。如果
start
不为零,则跳过可迭代的元素,直到到达开始。之后,元素将连续返回,除非step
设置为高于 1,从而导致项目被跳过。如果stop
是None
,则迭代继续进行,直到迭代器耗尽(如果有的话);否则,它会停在指定位置。与常规切片不同,islice()
不支持start
、stop
或step
的负值。可用于从内部结构已展平的数据中提取相关字段(例如,multi-line 报告可能每三行列出一个名称字段)。大致相当于:def islice(iterable, *args): # islice('ABCDEFG', 2) --> A B # islice('ABCDEFG', 2, 4) --> C D # islice('ABCDEFG', 2, None) --> C D E F G # islice('ABCDEFG', 0, None, 2) --> A C E G s = slice(*args) start, stop, step = s.start or 0, s.stop or sys.maxsize, s.step or 1 it = iter(range(start, stop, step)) try: nexti = next(it) except StopIteration: # Consume *iterable* up to the *start* position. for i, element in zip(range(start), iterable): pass return try: for i, element in enumerate(iterable): if i == nexti: yield element nexti = next(it) except StopIteration: # Consume to *stop*. for i, element in zip(range(i + 1, stop), iterable): pass
如果
start
是None
,则迭代从零开始。如果step
是None
,则步骤默认为一。
相关用法
- Python itertools.takewhile用法及代码示例
- Python itertools.compress用法及代码示例
- Python itertools.dropwhile用法及代码示例
- Python itertools.repeat用法及代码示例
- Python itertools.combinations_with_replacement用法及代码示例
- Python itertools.groupby()用法及代码示例
- Python itertools.repeat()用法及代码示例
- Python itertools.count用法及代码示例
- Python itertools.starmap用法及代码示例
- Python itertools.filterfalse用法及代码示例
- Python itertools.chain.from_iterable用法及代码示例
- Python itertools.groupby用法及代码示例
- Python itertools.zip_longest用法及代码示例
- Python itertools.accumulate用法及代码示例
- Python itertools.tee用法及代码示例
- Python itertools.combinations用法及代码示例
- Python itertools.permutations用法及代码示例
- Python itertools.product用法及代码示例
- Python itertools.chain用法及代码示例
- Python itertools.cycle用法及代码示例
注:本文由纯净天空筛选整理自python.org大神的英文原创作品 itertools.islice。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。