BraveZhao的个人博客分享 http://blog.sciencenet.cn/u/BraveZhao

博文

Learn python the hard way---chaper 5 迭代与生成

已有 1460 次阅读 2018-10-1 17:57 |个人分类:Python|系统分类:科研笔记

 

迭代与生成

1.      迭代器有时也称为游标,可以由迭代对象转化而来,支持以next()方法依次取出可迭代对象中各元素的一种东西;

列表也是一种可迭代的对象,我们也可以直接使用迭代器来访问列表里面的元素,通过使用iter( )作用于列表从而转化为一个迭代器;

 

>>> a=["pyhton","php","R"]

>>> a2=iter(a)

>>> next(a2)

'pyhton'

>>> next(a2)

'php'

>>> next(a2)

'R'

>>> next(a2)

Traceback (most recent call last):

  File "<pyshell#8>", line 1, in <module>

    next(a2)

StopIteration

 

首先使用iter()将迭代对象转换为迭代器,然后使用next()依次作用于迭代器,迭代器取完元素之后就空了,并且引发一个停止迭代的异常,所以迭代器是一种消耗品;


2.      迭代器常见使用

使用迭代器需要掌握下面几个函数或者方法:

iter() #将可迭代对象转化为迭代器;

next() #取出迭代器中的

_iter_() #用于返回迭代器本身


3.      可迭代的对象

常见的可迭代对象主要有:字符串、列表、元组、字典、字符串、文件;

我们可以通过collections下面的Iterable中的isinstance()来判断对应的对象是否为可迭代对象,判断格式如下:

isinstance(待判断的对象,Iterable)

判断结果为True则为可迭代对象,若不是可迭代对象,判断结果为False;

 

4.      生成器概述与工作流程

生成器是迭代器的一种,使用next()方法对迭代器依然有效。

构建生成器的方法常见的有两种:

1) 通过yield字段返回实现;

2) 通过生成器表达式实现;




https://blog.sciencenet.cn/blog-3388193-1138263.html

上一篇:Ubuntu中phonopy的安装及声子谱的计算
下一篇:Learn python the hard way---chaper 6 函数与模块 (1)
收藏 IP: 157.0.78.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 03:28

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部