13.1Python基础拾遗(1):迭代器
2018-03-20 21:53
204 查看
@可迭代对象iterable
迭代就是逐个审查,但不一定要完成全部遍历(这是迭代与遍历的区别);
可迭代对象就是由若干并列的子元素集合而成的对象;
常见的容器和字符串都属于可迭代对象;
@迭代器
基于一个可迭代对象,我们可以创建它的迭代器;
有了迭代器,我们就可以对可迭代对象中的元素进行逐个审查(但不一定要完成遍历);
@迭代器的迭代操作
通过next(it)的方式,可以对迭代器进行轮询迭代;
但迭代已经完成时继续迭代,系统会抛出StopIteration异常;
使用next(it)配合异常捕获,我们可以实现对迭代器的完整遍历:
迭代就是逐个审查,但不一定要完成全部遍历(这是迭代与遍历的区别);
可迭代对象就是由若干并列的子元素集合而成的对象;
常见的容器和字符串都属于可迭代对象;
# 字符串和常见的容器都是可迭代对象iterable miterable = "hello" miterable = (1,2,3,4,5) miterable = [1,2,3,4,5] miterable = {1,2,3,4,5} # 迭代器访问字典时,迭代出来的元素为键 miterable = {1:"hello",2:345,3:None,4:[1,2,3],5:""}
# 可迭代对象的简易遍历 for item in it: print(item)
@迭代器
基于一个可迭代对象,我们可以创建它的迭代器;
有了迭代器,我们就可以对可迭代对象中的元素进行逐个审查(但不一定要完成遍历);
# 创建基于iterable的迭代器 it = iter(miterable)
@迭代器的迭代操作
# 迭代器的简易遍历 for item in it: print(item)
通过next(it)的方式,可以对迭代器进行轮询迭代;
但迭代已经完成时继续迭代,系统会抛出StopIteration异常;
# 通过next(it)逐个访问 print(next(it)) print(next(it)) print(next(it)) print(next(it)) print(next(it)) # 迭代已 bb3b 经完成时继续迭代,系统会抛出StopIteration异常 print(next(it))
使用next(it)配合异常捕获,我们可以实现对迭代器的完整遍历:
# 遍历到越界时会抛出StopIteration异常 while True: try: print(next(it)) except StopIteration: break print("over")
相关文章推荐
- java基础15迭代器
- NHibernate基础拾遗
- [Think In Java]基础拾遗3 - 容器、I/O、NIO、序列化
- C++ 迭代器 基础介绍
- Java基础知识_集合(ArrayList & LinkedList & Vector & 迭代器)
- 基础拾遗-----数据注解与验证
- javascript基础拾遗(六)
- javascript基础拾遗(十二)
- Python基础之生成器、迭代器
- 黑马程序员——java基础拾遗之IO流(二)File 和 Properties的使用
- Python拾遗之迭代器和生成器(二)
- 黑马程序员:Java基础——集合框架之体系概述、共性方法与迭代器
- C基础只是拾遗1
- Java基础知识强化之集合框架笔记11:Collection集合之迭代器的原理及源码解析
- C++基础知识拾遗
- 13.4Python基础拾遗(4):偏函数
- Ado.Net基础拾遗一:读取数据
- .NET基础学习(迭代器)
- Java基础拾遗:线程相关问题
- 拾遗:Perl 基础语法