如果您打开解释器并执行以下操作:
help(range)
将会得到以下结果:
Help on built-in function range in module __builtin__:
range(...)
range(stop) -> list of integers
range(start, stop[, step]) -> list of integers
Return a list containing an arithmetic progression of integers.
range(i, j) returns [i, i+1, i+2, ..., j-1]; start (!) defaults to 0.
When step is given, it specifies the increment (or decrement).
For example, range(4) returns [0, 1, 2, 3]. The end point is omitted!
These are exactly the valid indices for a list of 4 elements.
从描述中可以看出,这是范围的工作方式。它需要一个起始位置,然后是一个停止位置,最后是可选的步长以每次增加x。
编辑
根据您的评论回答,您之所以会得到索引超出范围的错误,是因为当您这样做时:
for i in arr:
print(arr[i])
那样行不通,因为
for i in arr
会给你数组中每个项的
值。所以,你所做的实际上是将一个值放入arr中,就好像它是索引一样。但它不是。
当你这样做时:
for i in range(0, len(arr))
这里发生的是,你得到一个基于数组大小的递增值,这样你就可以将该值用作列表的索引。
for item in original_list
。 - Matthias