如何从第二个索引开始for循环

新手上路,请多包涵

我有这个for循环。我想要 i in range(nI)I 列表中的第二个数字开始。你能指导我吗?

 I=[0,1,2,3,4,5,6]
nI=len(I)
for i in range(nI):
    sum=0
    for v in range(nV):
        for j in range(nJ):
            sum=sum+x1[i][j][v]
return sum

原文由 Abi 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

首先要记住 python 使用零索引。

除了使用范围函数获取所需项目的索引或切片获取元素外,您可以遍历列表。

我认为这里变得令人困惑的是,在您的示例中,值和索引是相同的,所以为了澄清,我将使用此列表作为示例:

 I = ['a', 'b', 'c', 'd', 'e']
nI = len(I) # 5

range 函数将允许您遍历索引:

 for i in range(1, nI):
    print(i)
# Prints:
# 1
# 2
# 3
# 4

如果你想使用范围函数访问值,你应该这样做:

 for index in range(1, nI):
    i = I[index]
    print(i)
# Prints:
# b
# c
# d
# e

你也可以使用数组切片来做到这一点,你甚至不需要 nI 。数组切片返回一个包含切片的新数组。

切片使用 the_list_reference[start:end:steps] 完成,其中所有三个参数都是可选的,并且:

start 是第一个被包含在切片中的索引

end 是要从切片中排除的第一个元素的索引

steps 是从(如预期)开始的每个下一个索引的步骤数 start (如果 steps 是 1 it 2 并获取每个奇数索引开始.

例子:

 for i in I[1:]:
    print(i)
# Prints:
# b
# c
# d
# e

原文由 Luiz Ferraz 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以简单地使用切片:

 for item in I[1:]:
    print(item)

如果你想要索引,使用 pythonic-style enumerate

 START = 1
for index, item in enumerate(I[START:], START):
    print(item, index)

原文由 Yegor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题