【1.42】迭代器

迭代器 就是让不同的数据类型 具有 迭代功能

 如 有序 的 

列表 字符串  元组

如 无序 的

文件 字典 集合

变成满足迭代定义的数据类型 

能迭代 就是具有 next 方法  只能前进不能后退  

1、如何才能将这些数据类型 变成可以迭代的数据类型

就是使用 数据类型的 iter 迭代器方法 生成具有 next 方法的数据类型

2、 

迭代 就是 链表加模式 起头a 开始往后 b,b中前是 a后事下个值位置

就是自己有个next 方法

不是python中的next方法

3、但是这两个方法一样

 

4、有序 字符串 列表 元组 无序 字典 文件 集合

5、有这个iter方法 产生可以迭代对象 也就是一个地址,通过这个迭代对象使用自己的next方法

6、这样就可以迭代了

7、for 也就干三件事 用iter 再用next   然后接收停止next的错误

8、while也可以干 index 定义为1,对index循环访问

9、接收错误使用try except

10、能调用iter 方法就是可以迭代的对象 换句话说就是有iter方法的就是可以迭代的对象

11、看看下面的例子:

 1 #coding=utf-8
 2 
 3 #while 实现有序 数据类型的 遍历
 4 str = "cinderella"
 5 
 6 index = 0
 7 while index <= len(str):
 8     try:
 9         print(str[index])
10     except IndexError as e:
11         print ("This string is %s"%len(str))
12     index += 1
13 
14 # 生成器 实现 有序数据类型的 遍历
15 
16 str1 = str.__iter__()
17 print (str1.__next__())
18 print (str1.__next__())
19 print (str1.__next__())
20 print (str1.__next__())
21 print (str1.__next__())
22 print (str1.__next__())
23 print (str1.__next__())
24 print (str1.__next__())
25 print (str1.__next__())
26 #print (str1.__next__())
27 print ("test  iter func")
28 #for 循环自动实现迭代器生成迭代对象 29 30 for item in str: 31 print (item) 32 print ("for 循环自动实现迭代器方法测试")

 

posted @ 2016-04-01 15:59  科学小怪癖  阅读(89)  评论(0)    收藏  举报