【问题标题】:How to loop over list between index [duplicate]如何在索引之间循环列表[重复]
【发布时间】:2020-05-10 06:16:45
【问题描述】:

我想循环使用索引的列表,而循环我希望 for 循环同时考虑开始索引和最后一个索引,尽管它尊重开始索引它不尊重最后一个索引。我正在尝试的代码是这样的:

arr = [0,1,2,3,4,5,6,7,8,9]

for i in arr[4:8]:
        print(i)

实际结果:

4
5
6
7

期望的结果:

4
5
6
7
8

【问题讨论】:

  • 4:8 是四个项目。为什么你期望它是五个项目?
  • 这是在 Python 中定义切片的方式(用于标准库的对象)。您必须在结束索引中添加一个。
  • 结束索引不包含在列表切片中。
  • 我可以反过来问 - 为什么切片的结尾位于 7 时您会感到惊讶,但切片的开头位于 4 时并不感到惊讶?一个切片0:4必须停止在3,这样一个切片4:8就可以从4开始——否则整个系统没有任何意义

标签: python python-3.x loops for-loop


【解决方案1】:

您需要有一个“战略”+ 1,因为 Python 中的切片排除了最后一个元素:

for i in arr[4:8 + 1]:
    print(i)

【讨论】:

    【解决方案2】:

    在 python 切片中,结束索引不包含在内。

    例如

    print(list(range(4,8))
    #[4, 5, 6, 7]
    #won't include 8
    

    大多数情况下这就足够了。

    对于特定用例,您可能需要在索引中添加“1”。

    for i in arr[start_index:end_index+1]:
        print(i)
    

    【讨论】:

      猜你喜欢
      • 2021-07-16
      • 2023-02-08
      • 1970-01-01
      • 2021-11-02
      • 2021-05-10
      • 2020-10-18
      • 1970-01-01
      • 2014-01-28
      相关资源
      最近更新 更多