Python 如何在索引之间循环列表

Python 如何在索引之间循环列表,python,python-3.x,loops,for-loop,Python,Python 3.x,Loops,For Loop,我想用索引循环列表,循环时,我想让循环考虑开始索引和最后索引,尽管它尊重开始索引,但不尊重最后索引。我正在尝试的代码如下: 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 您需要有一个“战略性的”+1,因为Python中的切片排除了最后一个元素: for i in arr[4:8 + 1]: print(i) 您需要有一个“战略性的”+1,

我想用索引循环列表,循环时,我想让循环考虑开始索引和最后索引,尽管它尊重开始索引,但不尊重最后索引。我正在尝试的代码如下:

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
您需要有一个“战略性的”
+1
,因为Python中的切片排除了最后一个元素:

for i in arr[4:8 + 1]:
    print(i)
您需要有一个“战略性的”
+1
,因为Python中的切片排除了最后一个元素:

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

在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)

在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)

4:8
是四项。为什么您希望它是五个项目?这就是在Python中如何定义切片(对于标准库的对象)。您必须在结束索引中添加一个。结束索引在列表片段中不包含。我可以问另一个问题-为什么您对片段的结尾在
7
,而对片段的开头在
4
感到惊讶?片
0:4
必须在
3
处停止,以便片
4:8
可以在
4
处开始-否则整个系统没有任何意义
4:8
是四项。为什么您希望它是五个项目?这就是在Python中如何定义切片(对于标准库的对象)。您必须在结束索引中添加一个。结束索引在列表片段中不包含。我可以问另一个问题-为什么您对片段的结尾在
7
,而对片段的开头在
4
感到惊讶?切片
0:4
必须在
3
处停止,以便切片
4:8
可以在
4
处开始-否则整个系统没有任何意义