我似乎无法理解何时包括结束条件,以及何时不取决于起始位置,因为列表的长度或列表的长度减去一个(最后一个位置),而不用步进值修改结尾
我想在循环中弹出列表中的元素
(注意:我知道像这样设置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个索引之前?但是会弹出第一个元素。
答案 0 :(得分:1)
在这两种情况下都排除了结尾。在第二种情况下,您使循环少运行了一次,因为您将-1
添加到了开始条件。结束值始终为 ,起始值始终为 。
只需列出print
和range
,您就会看到:
>>> 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
开始了循环。