python学习---迭代器

  1 #!/usr/bin/env python3
  2 # -*- coding: utf-8 -*-
  3 
  4 '''#迭代器
  5 迭代是Python最强大的功能之一,是访问集合元素的一种方式。。
  6 迭代器是一个可以记住遍历的位置的对象。
  7 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。
  8 迭代器有两个基本的方法:iter() 和 next()。
  9 字符串,列表或元组对象都可用于创建迭代器
 10 01.凡是可作用于for循环的对象都是Iterable类型
 11 02.凡是可作用于next()函数的对象都是Iterrator类型,它们表示一个惰性计算的序列
 12 03.集合数据类型如 list、dict、str等是Iterable 但不是Iterator,不过可以通过
 13 iter()函数获得一个Iterator对象。
 14 '''
 15 from collections import Iterable, Iterator 
 16 
 17 def g():  #定义一个生成器
 18    yield 1 
 19    yield 2 
 20    yield 3 
 21 
 22 #判断Iterable 和Iterator方法
 23 print('Iterable? [1, 2, 3]:', isinstance([1, 2, 3], Iterable)) 
 24 print('Iterable? \'abc\':', isinstance('abc', Iterable)) 
 25 print('Iterable? 123:', isinstance(123, Iterable)) 
 26 print('Iterable? g():', isinstance(g(), Iterable))  #Iterable? g(): True
 27 
 28 
 29 print('Iterator? [1, 2, 3]:', isinstance([1, 2, 3], Iterator)) 
 30 print('Iterator? iter([1, 2, 3]):', isinstance(iter([1, 2, 3]), Iterator)) 
 31 print('Iterator? \'abc\':', isinstance('abc', Iterator)) 
 32 print('Iterator? 123:', isinstance(123, Iterator)) 
 33 print('Iterator? g():', isinstance(g(), Iterator))  #Iterator? g(): True
 34 
 35 #生成器既是Iterable,也是Iterator
 36 
 37 # iter list: 
 38 print('for x in [1, 2, 3, 4, 5]:') 
 39 for x in [1, 2, 3, 4, 5]: 
 40     print(x,end = " ")  #1 2 3 4 5 
 41 print("")
 42 
 43 #iterator list
 44 print('for x in iter([1, 2, 3, 4, 5]):') 
 45 for x in iter([1, 2, 3, 4, 5]): 
 46     print(x,end = " ")  ##1 2 3 4 5 
 47 print("") 
 48 
 49 
 50 print('next():') 
 51 it = iter([1, 2, 3, 4, 5]) 
 52 print(next(it)) 
 53 print(next(it)) 
 54 print(next(it)) 
 55 print(next(it)) 
 56 print(next(it)) 
 57 
 58 
 59 d = {'a': 1, 'b': 2, 'c': 3} 
 60 
 61 
 62 # iter each key: 
 63 print('iter key:', d) 
 64 for k in d.keys(): 
 65     print('key:', k, end=" ")  #key: a key: b key: c
 66 print("")
 67 
 68 
 69 # iter each value: 
 70 print('iter value:', d) 
 71 for v in d.values(): 
 72     print('value:', v, end=" ") #value: 1 value: 2 value: 3
 73 print("") 
 74 
 75 
 76 # iter both key and value: 
 77 print('iter item:', d) 
 78 for k, v in d.items(): 
 79     print('item:', k, v, end=" ") #item: a 1 item: b 2 item: c 3
 80 print("") 
 81 
 82 
 83 # iter list with index: 
 84 print('iter enumerate([\'A\', \'B\', \'C\']') 
 85 for i, value in enumerate(['A', 'B', 'C']): 
 86     print(i, value,end = " ") #0 A 1 B 2 C
 87 print("") 
 88 
 89 
 90 # iter complex list: 
 91 print('iter [(1, 1), (2, 4), (3, 9)]:') 
 92 for x, y in [(1, 1), (2, 4), (3, 9)]: 
 93     print(x, y, end = " ") #1 1 2 4 3 9 
 94 print("") 
 95 
 96 list = [1,2,3,4]
 97 it = iter(list)  #创建迭代器对象
 98 print(next(it))  #输出迭代器的下一个元素
 99 print(next(it))
100 
101 list = [1,2,3,4]
102 for x in iter(list):
103     print(x, end = " ") #使用for循环语句进行遍历
104 print("")
105 
106 #使用next()函数
107 import sys
108 list=[1,2,3,4]
109 it = iter(list)
110 
111 while True:
112     try:
113         print(next(it),end=" ")
114     except StopIteration:
115         sys.exit()
116     print("")

 

posted @ 2017-10-13 11:08  hayden__wang  阅读(149)  评论(0编辑  收藏  举报