起始范围()为len(<some_list>)VS起始范围()为len(<some_list>)-1 [Inclusive / Exclusive end]

时间:2019-08-17 17:13:58

标签: python python-3.x python-2.7 list

我似乎无法理解何时包括结束条件,以及何时不取决于起始位置,因为列表的长度或列表的长度减去一个(最后一个位置),而不用步进值修改结尾

我想在循环中弹出列表中的元素 (注意:我知道像这样设置range(0,len(colors_list))也会成功)

colors_list = ["green","blue","yellow","pink","violet","black"]

我尝试了这段代码,其中包括结尾:-

for color in range(len(colors_list),0,-1):
    colors_list.pop()

print(colors_list)
Output : []

,我也尝试过此方法,但是这里排除了结尾:-

for color in range(len(colors_list)-1,0,-1):
    colors_list.pop() 

print(colors_list)
Output : ["green"]

我理解第二个试用版,因为没有弹出第0个索引,但是我不理解第一个试用版,就像它不应该与第二个相同吗?考虑到它停止在第0个索引之前?但是会弹出第一个元素。

1 个答案:

答案 0 :(得分:1)

在这两种情况下都排除了结尾。在第二种情况下,您使循环少运行了一次,因为您将-1添加到了开始条件。结束值始终为 ,起始值始终为

只需列出printrange,您就会看到:

>>> colors_list = ["green","blue","yellow","pink","violet","black"]
>>> print(list(range(len(colors_list),0,-1)))
[6, 5, 4, 3, 2, 1]

>>> print(list(range(len(colors_list)-1,0,-1)))
[5, 4, 3, 2, 1]

两个都不使用0,您只是从一个6开始,而另一个5开始了循环。