我有一个生成器函数,想从中获取前十项;我的第一次尝试是:
my_generator()[:10]
正如错误告诉我的那样,这不起作用,因为生成器不可订阅。现在我已经解决了这个问题:
list(my_generator())[:10]
这是有效的,因为它将生成器转换为列表;然而,它的效率很低,并且失去了拥有发电机的意义。是否有一些内置的、Pythonic 的等价物[:10]
对于发电机?
import itertools
itertools.islice(mygenerator(), 10)
itertools
有许多用于使用迭代器的实用程序。islice
使用开始、停止和步骤参数来对迭代器进行切片,就像对列表进行切片一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)