python 学习---迭代

 1 #!/usr/bin/env python3
 2 # -*- coding: utf-8 -*-
 3 
 4 # 迭代(Iteration) 列表生成式(List Comprehensions)生成器(generator)
 5 # 可迭代对象(Iterable) 迭代器(Iterator)
 6 '''
 7 1. Iterable是一种object,它具有__iter__或__getitem__方法,能够返回一个iterator
 8 2. Iterator是一种用于next方法的object。调用next()方法,可以每次取得iterator中的一个元素。
 9 3. Iteration: 在一个数据容器中遍历它的成员的过程 就是iteration。
10 4. Generator 是那种通过yield方法来遍历元素的函数
11    Generator 也是iterator,但是只能遍历它一次。它的好处是不存储元素值,也就不占用内存空间
12 '''
13 from collections import Iterable, Iterator
14 
15 def g():       #定义一个Generator
16     yield 1
17     yield 2
18     yield 3
19 
20 print('Iterable? [1, 2, 3]:', isinstance([1, 2, 3], Iterable)) #判断列表是否可迭代
21 print('Iterable? \'abc\':', isinstance('abc', Iterable)) #判断字符串是否可迭代
22 print('Iterable? 123:', isinstance(123, Iterable)) #判断一个整数是否可迭代
23 print('Iterable? g():', isinstance(g(), Iterable)) #判断一个生成器是否可迭代
24 
25 #判断一个列表是否是迭代器
26 print('Iterator? [1, 2, 3]:', isinstance([1, 2, 3], Iterator)) 
27 #判断一个迭代器对象是否是迭代器
28 print('Iterator? iter([1, 2, 3]):', isinstance(iter([1, 2, 3]), Iterator))
29 #判断一个字符串是否是迭代器
30 print('Iterator? \'abc\':', isinstance('abc', Iterator))
31 #判断一个整数是否是迭代器
32 print('Iterator? 123:', isinstance(123, Iterator))
33 #判断一个生成器是否是迭代器
34 print('Iterator? g():', isinstance(g(), Iterator))
35 
36 # iter list:
37 print('for x in [1, 2, 3, 4, 5]:')
38 for x in [1, 2, 3, 4, 5]:
39     print(x)
40 
41 print('for x in iter([1, 2, 3, 4, 5]):')
42 for x in iter([1, 2, 3, 4, 5]):
43     print(x)
44 
45 print('next():')
46 it = iter([1, 2, 3, 4, 5]) #创建迭代器对象
47 print(next(it))            #输出迭代器的下一个元素
48 print(next(it))
49 print(next(it))
50 print(next(it))
51 print(next(it))
52 
53 d = {'a': 1, 'b': 2, 'c': 3} #定义一个字典
54 
55 # iter each key: 迭代字典的key
56 print('iter key:', d)
57 for k in d.keys():
58     print('key:', k)
59 
60 # iter each value: 迭代字典的value
61 print('iter value:', d)
62 for v in d.values():
63     print('value:', v)
64 
65 # iter both key and value:
66 print('iter item:', d)
67 for k, v in d.items():
68     print('item:', k, v)
69 
70 # iter list with index: 
71 print('iter enumerate([\'A\', \'B\', \'C\']')
72 for i, value in enumerate(['A', 'B', 'C']):
73     print(i, value)
74 
75 # iter complex list:
76 print('iter [(1, 1), (2, 4), (3, 9)]:')
77 for x, y in [(1, 1), (2, 4), (3, 9)]:
78     print(x, y)

 

posted @ 2017-10-09 16:17  hayden__wang  阅读(147)  评论(0编辑  收藏  举报