导语:
本文主要介绍了关于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学习指路:
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python垃圾回收的机制流程09/18
- ♥ python注释的使用方法12/22
- ♥ 如何使用python的范围11/14
- ♥ 举例Python中常见的数字转换12/25
- ♥ python turtle模块有哪些命令?12/16
- ♥ 如何使用 pip 运行 python10/31
内容反馈