len(x) 和 len(x)-1 有什么区别?

时间:2021-01-31 08:50:34

标签: python list for-loop range

对于这个非常基本的问题,我很抱歉,这是一个我无法完全理解的概念。

据我所知,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

这是为什么? 哪一个是正确的?

2 个答案:

答案 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)): 迭代所有元素的原因在列表中。