文章目录

  • 1.定义一个生成器函数
  • 2.模拟range的功能,自己建立一个range:MyRange
  • 3. re中函数的使用(自己写用例来使用):

1.定义一个生成器函数

生成1-10
使用next(generator)方法获取1-10
使用for循环获取

def generator():for i in range(1, 11):yield igen = generator()
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))
print(next(gen))

2.模拟range的功能,自己建立一个range:MyRange

range(10)
range(1, 10)
range(1, 10, 1) =>
start, stop, step
range(10, 1, -1)
range(10, -1, -1)
range(-10, -1, 1)
range(-1, -10, -1)

class MyRange:def __init__(self, start, stop, step=0):self.start = startself.stop = stopself.step = stepdef __iter__(self):return selfdef __next__(self):if self.step == 0:self.step = 1if self.step > 0:if self.start < self.stop:se = self.startself.start += self.stepreturn seelse:raise StopIterationelse:if self.start > self.stop:se = self.startself.start += self.stepreturn seelse:raise StopIterationprint(list(MyRange(10, 1, -1)))
print(list(MyRange(10, -1, -1)))
print(list(MyRange(-10, -1, 1)))
print(list(MyRange(-1, -10, -1)))

3. re中函数的使用(自己写用例来使用):

"""matchfullmatchsearchfindallfinditersplitsubsubncomplie
"""
print(re.match('pattern', 'pattern asdf'))
print(re.match('pattern', 'paasdern asdf'))
print(re.fullmatch("pattern", 'pattern'))
print(re.fullmatch("pattern", 'pattern asdf'))
print(re.search("pattern", "asdpatternads"))
print(re.search("pattern", "asdpaternads"))
print(re.findall('pattern', "pattern  pattern  asdpattern"))
iter_or = re.finditer("pattern", "pattern  pattern  asdpattern")
for i in iter_or:print(i)
print(re.split(r'\.', 'asd.txt'))
print(re.sub('pattern', '.', "pattern  pattern  asdpattern"))
print(re.subn('pattern', '.', "pattern  pattern  asdpattern"))
print(re.compile('asd'))

正则表达式,生成器,迭代器相关推荐

  1. python生成器迭代器_python 生成器 迭代器

    阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...

  2. python 生成器 迭代器 区别_Python生成器和迭代器的区别

    What is the difference between iterators and generators? Some examples for when you would use each c ...

  3. 在线正则表达式生成器用法

    在线正则表达式生成器(转) 对正则表达式很头疼,是不是?每次看到都觉得像看天书似的,别说让人自己整一个出来了.下面这个网站可以帮你生成正则表达式,而且还可以根据不同的语言生成不同的代码示例,很强大. ...

  4. 正则表达式生成器 | 正则表达式生成工具

    正则表达式生成器,智能提示和表达式含义解析,高亮显示匹配项内容,高端智能正则表达式生成工具,支持生成语言:Javascript.PHP.Go.rb.python.Java.objc.C#等. 下载地址 ...

  5. Python中的yield关键字及表达式、生成器、生成器迭代器、生成器表达式详解

    文章目录 1. yield关键字及表达式.生成器.生成器迭代器.生成器表达式 1.1 yield关键字及表达式(yield expression) 1.1.1 yield关键字 1.1.2 yield ...

  6. 列表生成式、生成器迭代器

    列表生成式.生成器&迭代器 一.列表生成式(List Comprehensions) 1.案例--列表每个值加1 先有列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9],要求你把 ...

  7. 生成器/迭代器 和 函数的递归

    生成器 一个包含yield关键字的函数就是一个生成器函数.yield可以为我们从函数中返回值,但是yield又不同于return,return的执行意味着程序的结束,调用生成器函数不会得到返回的具体的 ...

  8. python迭代器面试题_Python面试题之生成器/迭代器

    原博文 2017-07-02 21:36 − 1.为什么要有生成器? 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占 ...

  9. python 生成器 迭代器 yiled

    文章来源:http://python.jobbole.com/81911/ https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449 ...

  10. python 装饰器 生成器 迭代器和闭包

    1.1装饰器 a.装饰器本质上是python函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能, 装饰器的返回值也是一个函数/类对象 b.常用的需求场景 插入日志,性能测试, 权 ...

最新文章

  1. 设计冲刺下载_如何运行成功的设计冲刺
  2. Eclipse,MyEclipse 安装SVN插件
  3. bash 函数内部变量_使用源命令将函数和变量导入Bash
  4. mysql读写分离的含义_mysql的读写分离问题剖析
  5. 6.3 tensorflow2实现FM推荐系统——Python实战
  6. 使用分区表fstab永久挂载磁盘分区
  7. FTP-学习笔记(1)
  8. 电子测量——用C语言设计测量数据误差处理的通用程序
  9. 微软私有云分享(R2)9-SCVMM R2和SP1界面的不同
  10. Laravel文档梳理8、中间件
  11. piranha启动报错
  12. BUFF67 DM蓝牙5.2双模热插拔PCB
  13. 蓝牙芯片----BK3431开发笔记------RW stack中添加自定义服务教程(4)
  14. leetcode第21天格雷编码
  15. 习题8-14 商队抢劫者(Caravan Robbers, ACM/ICPC SEERC 2005, UVa1616)
  16. 京东抢购失败?试试用 python 准时自动抢购 (注释详尽)
  17. oracle查询某字段为空时,赋值为0
  18. matlab如何弄上标,[转载]在Matlab中怎样输入特殊符号或者上标、下标
  19. RK3288_Android_8.1_定频关机
  20. JXTA promotion, 2 install Demo Application

热门文章

  1. Java中文拼音转换
  2. 有快递单号怎么快速查询快递物流
  3. 本地项目如何被外网访问(外网穿透工具一——natapp)
  4. java编译与反编译
  5. 媒体查询ipad,pc端
  6. 数据库_EXPLAIN(查询性能优化)
  7. mac(5) : 使用终端解压rar文件
  8. git在commit提交时报:On branch master Changes not staged for commit
  9. 菜鸟网络与顺丰达成和解 确保数据安全进行合作
  10. Patchwork++:基于点云的快速、稳健的地面分割方法