python for i in range(len())_python – Python:for循环 – for i in range(0,len(list)vs i for list in lis…

  • Post author:
  • Post category:python


如果您打开口译员并执行以下操作:

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))

这里发生的是您获得的增量值基于数组的大小,这样您就可以将该值用作列表的索引。