tur*_*tle 2 python python-itertools
我试图itertools.dropwhile只使用返回第三个元素之后的生成器中的元素,但是我遇到了一些麻烦:
from itertools import dropwhile
it = (i for i in range(10,20))
a = dropwhile(enumerate < 3, it)
next(a)
TypeError: 'bool' object is not callable
Run Code Online (Sandbox Code Playgroud)
我正在寻找的输出是:
[14, 15, 16, 17, 18, 19]
Run Code Online (Sandbox Code Playgroud)
谁能解释我的代码有什么问题并提供有效的解决方案?谢谢.
itertools提供完全符合您的要求的功能.从Python标准库,
itertools.
islice(iterable [,start ],停止 [,step ])创建一个迭代器,从迭代中返回所选元素.如果start为非零,则跳过iterable中的元素,直到达到start.之后,连续返回元素,除非将step设置为高于导致跳过项目的步骤.如果停止的
None,那么迭代继续进行,直到迭代器被耗尽,如果在所有; 否则,它停在指定位置.
>>> import itertools
>>> it = (i for i in range(10, 20)) # it = xrange(10, 20)
>>> a = itertools.islice(it, 4, None)
>>> list(a)
[14, 15, 16, 17, 18, 19]
Run Code Online (Sandbox Code Playgroud)