对于这个非常基本的问题,我很抱歉,这是一个我无法完全理解的概念。
据我所知,Python 列表中的第一个元素具有索引 [0]
。这意味着 len(x)-1
应该是我的列表 x 中的最后一个元素。
所以,如果我写一个循环:
for i in range(0, len(x)-1):
#do stuff here
这应该意味着我希望我从列表的第一个元素到最后一个元素。
不过,我总觉得写成:
for i in range(0, len(x)):
#do stuff here
这是为什么? 哪一个是正确的?
答案 0 :(得分:0)
range(0,x)
将循环到 x
的值,因此 < x
与 <= x
相对。例如,range(0, 3)
将遍历索引 0, 1, 2
。
这意味着第二个是正确的,就像 x = [4, 5, 6, 7]
(len 4) - 最大索引是 3,所以你想要循环索引 0, 1, 2, 3
。
答案 1 :(得分:0)
range(x, y)
表示从 x
开始并迭代到 y-1
所以当你使用 for i in range(0, len(x)-1):
时,它会从 0
迭代到 len(x) - 2
.
例如,如果 len(x) = 3
,语句 for i in range(0, len(x)-1):
将从 0
迭代到 1
,这就是我们使用 for i in range(0, len(x)):
迭代所有元素的原因在列表中。