关于迭代器和生成器

迭代器和生成器
迭代器 - 概念 可迭代的/可迭代对象
   什么是协议---python规定的 : 可迭代类型 和 python语言之间的协议
可迭代协议---内部含有'__iter__'方法的数据类型都是可迭代的
迭代器协议---内部含有__next__和__iter__方法的变量/值都是迭代器
迭代器特点:节省内存,惰性运算,一次性取值,只能能按顺序取
iterable 可迭代的 (整型不可迭代)
dir()
用dir函数查看一个数据类型的方法,在这些方法中,带双下划线的方法叫做'魔法方法','双下方法','内置方法'可以调用但是不需要你直接调用
什么是迭代器?
iterator 迭代器
{'__next__','__setstate__','__length_hint__'}
__length_hint__() 迭代器中有多少个元素
__setstate__() 控制迭代器从哪开始
__next__() 从迭代器中取下一个值
迭代器作用---节省内存,for循环就是利用了迭代器节省内存的特点来对python当中的变量来进行操作
生成器
生成器:程序员通过简单的函数就可以实现
生成器特点:调用之后不执行,需要next来触发这个函数继续向下执行
def finc():
  print('hello')
  yield 1 #含有yield 生成器函数 停止符(记录符)
调用生成器函数,而是返回一个生成器(generator)
所有生成器都是迭代器

转载于:https://www.cnblogs.com/qizt/p/9911696.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值