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
的所有索引,无论它包含多少表项。