千锋教育-做有情怀、有良心、有品质的职业教育机构

python生成器切片的实现

来源:千锋教育
发布时间:2023-11-13 20:49:18
分享

python生成器切片的实现

(推荐操作系统:windows7系统、Python3.9.1、DELLG3电脑。)

1、想得到一个由迭代器生成的切片对象,但是标准切片操作并不能做到。函数itertools.islice()正好适用于在迭代器和生成器上做切片操作。比如:

>>>defcount(n):

...whileTrue:

...yieldn

...n+=1

...

>>>c=count(0)

>>>c[10:20]

Traceback(mostrecentcalllast):

File"",line1,in

TypeError:'generator'objectisnotsubscriptable

>>>#Nowusingislice()

>>>importitertools

>>>forxinitertools.islice(c,10,20):

...print(x)

...

10

11

12

13

14

15

16

17

18

19

>>>

2、迭代器和生成器不能使用标准的切片操作,因为它们的长度事先我们并不知道(并且也没有实现索引)。函数islice()返回一个可以生成指定元素的迭代器,它通过遍历并丢弃直到切片开始索引位置的所有元素。然后才开始一个个的返回元素,并直到切片结束索引位置。

这里要着重强调的一点是islice()会消耗掉传入的迭代器中的数据。必须考虑到迭代器是不可逆的这个事实。所以如果你需要之后再次访问这个迭代器的话,那你就得先将它里面的数据放入一个列表中。

以上就是python生成器切片的实现,希望能对大家有所帮助。更多Python学习教程请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • python画笔的属性有哪些? python画笔的属性有哪些?画笔有颜色、画线的宽度等属性。1、turtle.pensize():设置画笔的宽度;2、turtle.pencolor():没有参数传入返回当前画笔颜色;传入参数设置画笔
  • python常用的画布方法 python常用的画布方法画布是turtle为我们展开绘画区域,可以设定其大小和初始位置。常用的画布方法有两个:screensize()和setup()。1.turtle.screensize(can
  • python代码的风格是什么? python代码的风格是什么?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。每一种计算机语言都有其特有的代码风格。如下:1、空格。如下所示的等号两边空格可加可不加,
  • python函数文档怎么写? python函数文档怎么写?本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。函数的文档的作用是对当前函数提供使用相关的参考信息。1、文档的写法:在函数内部开始的第一行
  • python收集参数如何解包 python收集参数如何解包本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明把参数放入List或者字典中,直接把List/dict中的值放入收集参数中。同理,
  • python收集参数的调用顺序 python收集参数的调用顺序本文教程操作环境:windows7系统、Python3.9.1,DELLG3电脑。1、说明收集参数,关键字参数,普通参数可以混合使用使用规则就是普通参数和关键字参数优先定