四种不同遍历方式:
1、for...in 遍历
app_list = [1234, 5677, 8899] for app_id in app_list: print app_id
输出:
1234 5677 8899
2、range()函数遍历
app_list = [1234, 5677, 8899] for i in range(len(app_list)): print (i,app_list[i])
输出:
0 1234 1 5677 2 8899
3、enumerate()函数遍历
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符 串)
组合为一个索引序列,同时列出数据和数据下标
app_list = [1234, 5677, 8899] for index,app_id in enumerate(app_list): print (index, app_id)
输出:
0 1234 1 5677 2 8899
4、iter() 函数用来生成迭代器遍历。
app_list = [1234, 5677, 8899] for app_id in iter(app_list): print app_id
输出:
1234 5677 8899
深入扩展:
for循环原理
for循环的实现机制其实就是基于迭代器协议对可迭代对象不断迭代, 而迭代器到底是什么呢?
1. 迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭 代中的下一项,
要么就引起一个StopIteration异常,以终止迭代。
2. 迭代器:实现了迭代器协议的对象(如何实现:对象内部定义一个
__iter__()方法)
3. 协议是一种约定,可迭代对象实现了迭代器协议,python的内部工具 (如for循环,
sum,min,max函数等)使用迭代器协议访问对象。
4. 可以通过__next__取值。
for 循环在处理这些数据前,会调用 __iter__() 方法,将这些数据转化为一 个迭代器, 然后调用迭代器的__next__()方法取值,直到抛出StopIteration异常,结束 迭代。
即我们可以通过手动迭代来模拟for循环: