知行编程网知行编程网  2022-10-09 11:30 知行编程网 隐藏边栏  16 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python生成器切片的实现的相关知识,包括python切片负数,以及迭代器与生成器这些编程知识,希望对大家有参考作用。

python生成器切片的实现


(推荐操作系统:windows7系统、Python 3.9.1、DELL G3电脑。)


1、想得到一个由迭代器生成的切片对象,但是标准切片操作并不能做到。

函数 itertools.islice() 正好适用于在迭代器和生成器上做切片操作。比如:

>>> def count(n):
...     while True:
...         yield n
...         n += 1
...
>>> c = count(0)
>>> c[10:20]
Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
TypeError: 'generator' object is not subscriptable
 
>>> # Now using islice()
>>> import itertools
>>> for x in itertools.islice(c, 10, 20):
...     print(x)
...
10
11
12
13
14
15
16
17
18
19
>>>


2、迭代器和生成器不能使用标准的切片操作,

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

这里要强调的重点是 islice() 使用传递的迭代器中的数据。必须考虑迭代器不可逆的事实。所以如果以后需要再次访问迭代器,就得先把里面的数据放到一个列表中。

以上就是python生成器

切片的实现,希望能对大家有所帮助。更

多Python学习指路:

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享