zoukankan      html  css  js  c++  java
  • 对迭代器进行切片

    直接对迭代器进行切片是不能完成的,例如

    l=range(20)
    l= iter(l)
    l1=l[5:10]
    
    #TypeError: 'range_iterator' object is not subscriptable
    

     此时会报错,那么如果确实需要对迭代器进行切片呢?

    #!/usr/bin/env python
    #coding:utf-8
    #@Author:Andy
    # Date: 2017/6/11
    
    from itertools import islice
    
    l = range(20)
    l = iter(l)
    
    t = islice(l,5,10) # 第一个参数指定迭代对象,后面分别为起始,终止,步长
    for i in t:
    	print(i)
    

     

    但是一定要注意,islice会将前面已经迭代的项消耗掉,类似于文件中的指针,当迭代到某一个地方,seek的位置是改变了的

    例如,如果紧接着上面的运行结束后,再次运行下面的代码,继续迭代l,

    for j in l:
    	print(j)
    

     

    它是紧接着刚才的迭代结束位置迭代的,看上去就像将之前的结果消耗掉了。

  • 相关阅读:
    代码走读 airflow 2
    sql 查询相关
    控制你的鼠标和键盘
    TODO
    二进制流的操作收集
    daterangepicker-双日历
    datetimepicker使用
    ADO执行事务
    动态添加表sql
    执行带返回值的存储过程
  • 原文地址:https://www.cnblogs.com/Andy963/p/6985287.html
Copyright © 2011-2022 走看看