迭代器、生成器、虚拟空间

一、迭代器

  1. 什么是迭代器?
    • 迭代器是一种纵向的容器型数据。与列表、字典等序列型数据不同的是,无法获得序列的长度或指定元素的值。
    • 只出不进。只要知道了迭代器中的元素就意味着元素被读取,也就是从迭代器中取了出来。
  2. 创建迭代器?
    • 通过关键字iter(序列型数据)。任何序列型数据都可以转换成迭代器。
    • 通过生成器创建。
  3. 读取迭代器?
    • 通过next(迭代器),来获取。
    • 通过遍历。
    • 如果迭代器中没有数据,如果在进行读取操作,则会报错。StopIteration 。
    • 如果对迭代器进行类型转换,如list(迭代器),则迭代器也会变为空。

二、生成器

  1. 什么是生成器?
    • 数据生产者。定义函数的时候通过关键字yield作为标记,yield 后面的数据即为生成器中的数据,yield的个数即为迭代器中数据的数量。
    • yield可以放在任何位置。带有yield的函数再调用时不会执行,只有再获取其中数据的时候才会执行。
    • 执行到yield的时候程序则会停止。将数据返回,并同时记录程序运行位置。下一次调用的时候继续运行。
  2. 创建生成器?
    • 通过关键字yield
    • 通常会和循环一起使用
  3. 数据的获取?
    • 和迭代器的获取方式一样。
    • 用的时候再去获取,可以大大节省内存空间,对数据分析非常友好。
    • python的三大神器:装饰器、迭代器、生成器。

三、虚拟空间

  1. 虚拟空间的存在是便于进行第三方库的管理。
  2. 安装python的时候,会安装解释器和系统库。
  3. 针对不同类型的项目会安装不同的第三方库。为了防止第三方库的杂乱,所以有必要开辟虚拟空间。
  4. 开辟虚拟空间的时候,会自动复制装饰器和系统库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值