【问题标题】:starting range() as len(<some_list>) VS starting range() as len(<some_list>)-1 [Inclusive/Exclusive end]起始范围()作为 len(<some_list>) VS 起始范围()作为 len(<some_list>)-1 [包含/排除结束]
【发布时间】:2019-08-17 17:13:58
【问题描述】:

我似乎无法理解何时包含结束条件以及何时不依赖于开始作为列表长度或列表长度减去一个(最后位置),而不用步长值修改结尾

我想在循环中从列表中弹出元素 (注意:我知道像这样设置range(0,len(colors_list)) 也可以解决问题)

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

我尝试了这段sn-p的代码,最后被包含了:-

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 个索引之前停止?但第一个元素被弹出。

【问题讨论】:

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


    【解决方案1】:

    在这两种情况下都排除了结尾。在第二种情况下,您少运行了一次循环,因为您将 -1 添加到了开始条件中。结束值总是独占,开始值总是包括在内。

    只需列出并printranges,您就会看到:

    >>> 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开始循环。

    【讨论】:

      猜你喜欢
      • 2011-05-29
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      • 2022-12-19
      • 2011-02-26
      • 1970-01-01
      • 2013-10-11
      相关资源
      最近更新 更多