Python知识(四)

本文详细介绍了Python中的生成器和迭代器,强调了它们在容器遍历和资源节省上的区别。生成器通过yield关键字实现,允许函数暂停并保留状态,仅遍历一次。相比之下,迭代器从已有容器中复制元素。使用生成器可以实现按需生成,避免内存浪费,尤其适用于大数据处理。此外,还列举了一些常见的正则表达式模式,用于匹配特定字符集。
摘要由CSDN通过智能技术生成

1)python生成器和迭代器的区别

        迭代器协议访问对象,先调用对象中的__iter__方法,提供next方法返回下一项,如果没有的话则去找__getitem__方法。没有下一项回抛出StopIterration的异常

        生成器,python中使用了yield的函数成为生成器,生成器函数返回一个迭代器。在调用生成器运行的过程中,每次遇到yield时函数高会暂停并保存当前所有运行的信息。返回yield的值,并在下次执行next()方法时从当前位置继续执行。

        在python中:列表、元组、字典、字符串可以迭代。

        区别:1.迭代器是访问容器的一种方式,也就是说容器已经出现,我们是从已有的元素中拓印出一份副本,只为我们此次迭代使用。而生成器则是自己生成元素。2.在使用方法上,生成器只需要简单函数写法,配合yield实现,生成器是只能遍历一次的。

        为什么使用生成器:1.节省资源。2.生成器随用随生成,用完即释放。3.可在单线程下实现并发运算的处理效果。

        yield与return的区别:相同点,都返回函数的执行结果。不同点,return在返回函数结果后,结束函数运行。而yield则是让函数变成一个生成器,生成器每次产生一个值(yield语句)函数被冻结,被唤醒后在产生一个值。

2)python中常用的正则表达式

        [Pp]thon        Pyhon python

        rub[ye]        ruby rube

        [0-9]        任何数字

        [a-z]        任何小写字母

        [A-Z]        任何大写字母

        [a-zA-Z0-9]        任何字母及数字

        [^aeiou]        除aeiou外的所有字符

        \d        数字字符        \D        非数字字符        \s        匹配任何空白字符

        \S        匹配任何非空白字符

        \w        匹配包括下划线的任何单词字符

        \W        匹配任何非空白字符

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值