1.1 迭代1.1.1 list和tuple迭代如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
>>> L = [1, 2, 3]
>>> for i in L: --list迭代
... print(i)
...
1
2
3
>>> for i in L:
... n = i
... print(n)
...
1
2
3
>>> L = (1, 2, 3)
>>> for i in L: --tuple迭代
... print(i)
...
1
2
3
Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上。 1.1.2 dict的迭代>>> d = {'a':1, 'b':2, 'c':3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> for key in d:
... print(key)
...
a
b
c
因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。
注意:dict默认迭代的是key。 1.1.3 dict的value迭代>>> for value in d.values():
... v_value = value
... print(v_value)
...
1
2
3 1.1.4 dict的key,value同时迭代>>> for k, v in d.items():
... print(k)
... print(v)
...
a
1
b
2
c
3 1.1.5 字符串的迭代>>> for i in 'DAIDAI':
... print(i)
...
D
A
I
D
A
I 1.1.6 判断对象是可迭代对象>>> fromcollections import Iterable
>>> isinstance('abc',Iterable)
True
>>> isinstance(123,Iterable)
False 1.1.7 enumerate函数函数作用:可以把一个list或tuple变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身
>>> for i,value in enumerate((1, 2, 3)):
... print(i, value)
...
0 1
1 2
2 3
>>> for i, value in enumerate((1,2, 3)):
... print(i)
... print(value)
...
0
1
1
2
2
3
>>> for i,value in enumerate(['a', 'b', 'c']):
... print(i, value)
...
0 a
1 b
2 c 1.1.8 同时引用了两个变量>>> for x, y in ((1,2), (3,4)):
... print(x, y)
...
1 2
3 4
>>> for x, y in ((1,2), (3,4)):
... print(x)
... print(y)
...
1
2
3
4
>>> for x, y in [(1,2), (3,4)]:
... print(x, y)
...
1 2
3 4