如果您打开口译员并执行以下操作:
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))
这里发生的是您获得的增量值基于数组的大小,这样您就可以将该值用作列表的索引。