### dict 遍历

- 关键字和对应的值可以使用 items() 方法同时解读出来

```python
>>> knights = {'gallahad': 'the pure', 'robin': 'the brave'}
>>> for k, v in knights.items():
...     print(k, v)
...
gallahad the pure
robin the brave

```

### 序列遍历

- 索引位置和对应值可以使用 enumerate() 函数同时得到

```python
>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...     print(i, v)
...
0 tic
1 tac
2 toe

```

- 同时遍历两个或更多的序列，可以使用 zip() 组合，迭代器性质，遍历一遍后清空，无法再次遍历

```python
>>> questions = ['name', 'quest', 'favorite color']
>>> answers = ['lancelot', 'the holy grail', 'blue']
>>> for q, a in zip(questions, answers):
...     print('What is your {0}?  It is {1}.'.format(q, a))
...
What is your name?  It is lancelot.
What is your quest?  It is the holy grail.
What is your favorite color?  It is blue.
```

- 反向遍历一个序列，首先指定这个序列，然后调用 reversed() 

```python
>>> for i in reversed(range(1, 10, 2)):
...     print(i)
...
9
7
5
3
1

```

- 按顺序遍历一个序列，使用 sorted() 函数返回一个已排序的序列，并不修改原值

```python
>>> basket = ['apple', 'orange', 'apple', 'pear', 'orange', 'banana']
>>> for f in sorted(set(basket)):
...     print(f)
...
apple
banana
orange
pear

```

