zoukankan      html  css  js  c++  java
  • python基础一 ------利用生成器生成一个可迭代对象

    #利用生成器生成一个可迭代对象
    #需求:生成可迭代对象,输出指定范围内的素数,利用生成器产生一个可迭代对象
    #生成器:本身是可迭代的,只是 yield 好比return返回,yield返回后函数冻结状态,当再次调用时从冻结状态开始

     

     1 class PrintNumbers(object):
     2     """docstring for PrintNumbers"""
     3     def __init__(self, start,end):
     4         self.start = start
     5         self.end = end
     6     def isPrimeNum(self,num):
     7         if num==2:
     8             return False
     9         for i in range(2,num):
    10             if num%i == 0:
    11                 return False
    12         return True
    13     def __iter__(self):
    14         for  i in range(self.start,self.end+1):
    15             if self.isPrimeNum(i):
    16                 yield i
    17 
    18 p = PrintNumbers(1,100)
    19 for i in p:
    20     print(i)

     对迭代器进行切片操作,跟列表类似,返回的依旧是可迭代类型的

     1 print("-------------对迭代器进行切片------------")
     2 #如何对迭代器进行切片操作
     3 from itertools import islice
     4 #返回的依旧是一个迭代器,需要迭代
     5 '''
     6 islice(iterable,stop)
     7 islice(iterable,start,stop[,step=1]) -> islice object
     8 
     9 
    10 '''
    11 a = islice(p,1,3)
    12 print(a)
    13 for x in a :
  • 相关阅读:
    bzoj3110
    idea 设置系列 各种乱码
    vim 系列
    idea 神键
    简单工厂,工厂方法,抽象工厂
    log4 按包进行日志输出
    maven依赖本地宝
    kafka 理论学习
    kafka windows环境搭建 测试
    linux 查找文件的命令
  • 原文地址:https://www.cnblogs.com/ruoniao/p/6848201.html
Copyright © 2011-2022 走看看