博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python基础一 ------利用生成器生成一个可迭代对象
阅读量:7239 次
发布时间:2019-06-29

本文共 1004 字,大约阅读时间需要 3 分钟。

#利用生成器生成一个可迭代对象
#需求:生成可迭代对象,输出指定范围内的素数,利用生成器产生一个可迭代对象
#生成器:本身是可迭代的,只是 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 False12         return True13     def __iter__(self):14         for  i in range(self.start,self.end+1):15             if self.isPrimeNum(i):16                 yield i17 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 :

 

转载于:https://www.cnblogs.com/ruoniao/p/6848201.html

你可能感兴趣的文章
DBSCAN
查看>>
Maven 使用 二——nexus
查看>>
解决maven的依赖总是无法下载完成
查看>>
【Python3 爬虫】15_Fiddler抓包分析
查看>>
【备忘】EntityFramework 6 升级到 EntityFrameworkCore 注意点
查看>>
xilinx uboot网卡驱动分析
查看>>
Spring Boot系列之配置日志输出等级
查看>>
Java 底层机制(JVM/堆/栈/方法区/GC/类加载)
查看>>
原 在windows上创建文件名以“.”开头的文件
查看>>
实时流处理Storm、Spark Streaming、Samza、Flink孰优孰劣
查看>>
e297: write error in swap file
查看>>
并发错误:事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品...
查看>>
Ubuntu下搭建Hyperledger Fabric v1.0环境
查看>>
EventBus 3.0使用详解
查看>>
Linux curl 一例
查看>>
【docker】【redis】1.docker安装redis【单点redis服务】
查看>>
Oracle数据库导入导出 imp/exp备份还原
查看>>
react-native-storage + AsyncStorage 实现数据存储
查看>>
Cobaltstrike、armitage联动
查看>>
pandas set_index和reset_index的用法
查看>>