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学习---迭代器的主要内容,如果未能解决你的问题,请参考以下文章