首页 > 代码库 > python基础一 ------利用生成器生成一个可迭代对象
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 :
python基础一 ------利用生成器生成一个可迭代对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。