4532423 发表于 2016-7-6 08:54:30

Python 迭代

1.1   迭代1.1.1   list和tuple迭代如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。
>>> L =
>>> 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

页: [1]
查看完整版本: Python 迭代