浅谈python迭代器


Posted in Python onNovember 08, 2017

1、yield,将函数变为 generator (生成器)

例如:斐波那契数列

def fib(num):
  a, b, c = 1, 0, 1

  while a <= num:
    yield c
    b, c = c, b + c
    a += 1
for n in fib(10):
  print(n, end=' ')
# 1 1 2 3 5 8 13 21 34 55

2、Iterable

所有可以使用for循环的对象,统称为 Iterable (可迭代)

from collections import Iterable, Iterator
print(isinstance(fib(10), Iterable))
print(isinstance(range(10), Iterable))
# True
# True

3、Iterator

可以使用next() <__next__()> 函数调用并且不断返回下一个值的对象成为 Iterator (迭代器),表示一个惰性计算的序列。

list, dict, str是Iterable,不是Iterator:

from collections import Iterator
print(isinstance(list(), Iterator))
# False

但是可以通过iter()函数将其变为Iterator:

print(isinstance(iter(list()), Iterator))
# True

总结

以上就是本文关于浅谈python迭代器的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python好玩的项目—色情图片识别代码分享、Python实现一个简单的验证码程序、Python算法输出1-9数组形成的结果为100的所有运算式等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

Python 相关文章推荐
python使用rabbitmq实现网络爬虫示例
Feb 20 Python
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python中map和列表推导效率比较实例分析
Jun 17 Python
用Python写冒泡排序代码
Apr 12 Python
python访问抓取网页常用命令总结
Apr 11 Python
Python中一些不为人知的基础技巧总结
May 19 Python
Python日志模块logging基本用法分析
Aug 23 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
linux查找当前python解释器的位置方法
Feb 20 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
使用python实现kNN分类算法
Oct 16 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
python生成excel的实例代码
Nov 08 #Python
Python 多核并行计算的示例代码
Nov 07 #Python
python判断字符串是否是json格式方法分享
Nov 07 #Python
python好玩的项目—色情图片识别代码分享
Nov 07 #Python
深入理解python中函数传递参数是值传递还是引用传递
Nov 07 #Python
python中numpy.zeros(np.zeros)的使用方法
Nov 07 #Python
django项目运行因中文而乱码报错的几种情况解决
Nov 07 #Python
You might like
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php实现修改新闻时删除图片的方法
2015/05/12 PHP
PHP经典面试题之设计模式(经常遇到)
2015/10/15 PHP
PHP常见数组排序方法小结
2018/08/20 PHP
php + ajax 实现的写入数据库操作简单示例
2020/05/16 PHP
PHP 8新特性简介
2020/08/18 PHP
jQuery ReferenceError: $ is not defined 错误的处理办法
2013/05/10 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
使用getBoundingClientRect方法实现简洁的sticky组件的方法
2016/03/22 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
javascript实现复选框全选或反选
2017/02/04 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
详解在create-react-app使用less与antd按需加载
2018/12/06 Javascript
小程序实现抽奖动画
2020/04/16 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
Vue路由 重定向和别名的区别说明
2020/09/09 Javascript
简单介绍Python中利用生成器实现的并发编程
2015/05/04 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
pandas中Timestamp类用法详解
2017/12/11 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
Sanic框架配置操作分析
2018/07/17 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
Etam俄罗斯:法国女士内衣和家居服网上商店
2019/10/30 全球购物
《故乡》教学反思
2014/04/10 职场文书
党风廉设责任书
2014/04/16 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
mysql分组后合并显示一个字段的多条数据方式
2022/01/22 MySQL
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL