11-列表用于循环
4.2.1 列表用于循环
在第2章中,我们学习了使用循环让一段代码执行一定次数。从技术上说,循环是针对一个列表或列表中的每个值,重复地执行代码块。例如,如果执行以下代码:
for i in range(4):
print(i)
程序的输出结果将是:
0
1
2
3
这是因为 range(4) 的返回值是类似列表的值。Python认为它类似于 [0, 1, 2, 3] 。(序列在4.6节的“序列数据类型”中介绍。)下面的程序和前面的程序输出结果相同:
for i in [0, 1, 2, 3]:
print(i)
前面的 for 循环实际上是在循环执行它的子句,在每次迭代中,将变量 i 依次设置为列表 [0, 1, 2, 3] 中的值。
一个常见的Python技巧是,在 for 循环中使用 range(len(someList)) ,迭代列表的每一个索引。例如,在交互式环境中输入以下代码:
>>> supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
>>> for i in range(len(supplies)):
... print('Index ' + str(i) + ' in supplies is: ' + supplies[i])
Index 0 in supplies is: pens
Index 1 in supplies is: staplers
Index 2 in supplies is: flame-throwers
Index 3 in supplies is: binders
在前面的循环中使用 range(len(supplies)) 很方便,这是因为循环中的代码可以访问索引(通过变量 i ),以及索引处的值(通过 supplies[i] )。最妙的是, range(len(supplies)) 将迭代 supplies 的所有索引,无论它包含多少表项。