收集python的小技巧, python实现原理
- 序列的索引来迭代
a = ['Mary', 'had', 'a', 'little', 'lamb']
要以序列的索引来迭代,您可以将 range() 和 len() 组合如下:
for i in range(len(a)): print(i, a[i])
然而,在大多数这类情况下,使用 enumerate() 函数比较方便
enumerate(iterable, start=0)
返回一个枚举对象。iterable 必须是一个序列,或 iterator,或其他支持迭代的对象。 enumerate() 返回的迭代器的__next__()
方法返回一个元组,里面包含一个计数值(从 start 开始,默认为 0)和通过迭代 iterable 获得的值。>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>> list(enumerate(seasons, start=1)) [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] 等价于: def enumerate(sequence, start=0): n = start for elem in sequence: yield n, elem n += 1