Python高级编程--迭代器
来源:互联网 发布:数据库处理查询的步骤 编辑:程序博客网 时间:2024/06/03 13:02
定义
迭代是Python最强大的功能之一,是访问集合元素的一种方式。。
迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
1.可迭代对象
可以直接作用于for循环的数据类型有以下几种:
一类是集合数据类型,如list、tuple、dict、set、str等;
一类是generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。
2. 判断是否可迭代
可以使用 isinstance() 判断一个对象是否是 Iterable 对象:
而生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。
3. 迭代器
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
可以使用isinstance()判断一个对象是否是Iterator对象:
4.iter()函数
iter() 函数用来生成迭代器。
语法:
iter(object[, sentinel])
参数:
object – 支持迭代的集合对象。
sentinel – 如果传递了第二个参数,则参数 object 必须是一个可调用的对象(如,函数),此时,iter 创建了一个迭代器对象,每次调用这个迭代器对象的__next__()
方法时,都会调用 object。
返回值:迭代器对象。
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
把list、dict、str等Iterable变成Iterator可以使用iter()函数:
总结:
• 凡是可作用于 for 循环的对象都是 Iterable 类型;
• 凡是可作用于 next() 函数的对象都是 Iterator 类型
• 集合数据类型如 list 、 dict 、 str 等是 Iterable 但不是 Iterator ,不过可以通过 iter() 函数获得一个 Iterator 对象。
• 目的是在使用集合的时候,减少占用的内容。
- Python高级编程--迭代器
- Python高级编程之迭代器与生成器
- 《Python高级编程》读书笔记
- python 高级编程 一
- python 高级编程 二
- python 高级编程 三
- python 高级编程 四
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python高级编程技巧
- Python 高级编程技巧
- python高级编程
- 2017年上半年个人总结
- 计步器最多最小值自己输入(OC)
- C语言的内存分配malloc()和free()
- Matrix-Tree定理学习小记(详细介绍+证明)
- 51NOD 1255 字典序最小的子序列 【贪心】
- Python高级编程--迭代器
- 洛谷 P2055 假期的宿舍
- select标签使用
- 字符串
- CentOS源码编译更换gcc版本
- 疯狂的bLue(拓扑序+离散化)
- Java菜鸟成长之路__Day_1_Java概述及基础语法
- Balsamiq Mockups原型工具使用心得
- 56-58_数组_StringBuilder和StringBuffer_常用方法_方法链的实现_JDK源码分析_常见面试题