python学习---迭代器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("")

 

以上是关于python学习---迭代器的主要内容,如果未能解决你的问题,请参考以下文章

python学习---迭代器

python学习--迭代器和异常处理

Python学习之三大名器-装饰器迭代器生成器

Python学习---装饰器/迭代器/生成器的学习all

Python学习日记简单了解迭代器生成器装饰器上下文管理器

python学习笔记4--迭代器生成器装饰器递归