码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习笔记——迭代器

时间:2015-07-16 19:36:59      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

什么是迭代器:

  它为类序列对象提供了一个类序列的接口。它们是一组数据结构,你可以利用它们的索引从0开始一直“迭代”到序列的最后一个条目。

 


 

 

如何用迭代器:

  (1)序列中的使用

>>>myTuple = (1, 2, 3)
>>>i = iter(myTuple)
>>>i.next()
1
>>>i.next()
2
>>>i.next()
3
>>>i.next()
Traceback (most recent call last):
File "", line 6,  in <module>
    i.next()
StopIteration

  (2)字典中的使用

字典的迭代器会遍历它的键(key)。语句for eachKey in myDict.keys()可以缩写为for eachKey in myDict

>>>dict1={(Poe,author):(1809,1849,1976),
...(Gaudi,architect):(1852,1906,1987)}
>>>for eachdict in dict1:
...    print Name: %s\tOccupation: %s % eachdict
...    print    Birth: %s\tDeath: %s\t Album: %s\n ...    % dict1[eachdict]
Name: poe     Occupation:author
   Birth:1809 Death:1849      Album:1976
   
Name: Gaudi   Occupation:architect
   Birth:1852 Death:1906      Album:1987       

另外,Python还引进了三个新的内建字典方法来定义迭代:myDict.iterkeys()(通过键迭代),myDict.itervalues()(通过值迭代)及myDict.iteritems()(通过键-值对来迭代)。

  (3)文件中的使用

文件对象生成的迭代器会自动调用readline()方法。这样,循环就能访问文本文件的所有行。

>>>myFile = open(C:\\Users\\tyy\\Desktop\\xxx.txt)
>>>for eachLine in myFile:
           print eachLine,
aaaa
bbbb
cccc
>>>myFile.close()

3.如何创建迭代器

  对一个对象调用iter()就可以得到它的迭代器。它的语法如下:

iter(obj)

iter(func, sentinel)

如果你传递一个值给iter(),它会检查你传递的是不是一个序列,如果是,则根据索引从0一直迭代到序列结束。

如果你传递了两个值给iter(),它会重复地调用func,直到迭代器的下一个值等于sentinel。

 

Python学习笔记——迭代器

标签:

原文地址:http://www.cnblogs.com/tyy-man/p/4651955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!