typora/note/Python/遍历技巧.md

70 lines
1.3 KiB
Markdown
Raw Permalink Normal View History

2024-12-11 21:48:55 -05:00
### 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
```