我有这个for-loop。我想
中的第二个数字开始
列表。你能给我指路吗?
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
发布于 2019-01-01 13:05:08
首先要记住,python使用零索引。
除了使用range函数来获取所需项目的索引或切片来获取元素之外,您可以遍历列表。
我认为这里变得令人困惑的是,在您的示例中,值和索引是相同的,因此为了澄清,我将使用以下列表作为示例:
I = ['a', 'b', 'c', 'd', 'e']
nI = len(I) # 5
range函数将允许您遍历索引:
for i in range(1, nI):
print(i)
# Prints:
# 1
# 2
# 3
# 4
如果您想使用range函数访问这些值,您应该这样做:
for index in range(1, nI):
i = I[index]
print(i)
# Prints:
# b
# c
# d
# e
您也可以使用数组切片来实现这一点,而您甚至不需要
..。数组切片会返回一个包含切片的新数组。
切片已完成
其中所有三个参数都是可选的,并且:
是要包含在切片中的第一个索引。
是要从切片中排除的第一个元素的索引。
是每个下一个索引的步数,从(正如预期的)
(如果
是2,并从1开始,它得到每个奇数索引)。
示例:
for i in I[1:]:
print(i)
# Prints:
# b
# c
# d
# e
发布于 2020-09-07 18:13:38
您可以简单地使用切片:
for item in I[1:]:
print(item)
如果你想要索引,使用pythonic风格
START = 1
for index, item in enumerate(I[START:], START):
print(item, index)
发布于 2018-12-05 05:38:38
如果您想遍历第二个项中的列表,只需使用
(如果nI是列表的长度左右)。
for i in range(1, nI):
sum=0
for v in range(nV):
for j in range(nJ):
sum=sum+x1[i][j][v]
也许,你的函数的一部分在某个地方丢失了,但不管怎样,在一般的range()中是这样工作的:
range(start_from, stop_at, step_size)
即e。
for i in range(2, 7, 2):
print(i, end=' ')
Out:
2 4 6
编辑
请记住: python使用零索引,即第一个元素的索引为0,第二个元素的索引为-1,依此类推。
默认情况下,
从0开始,止于
传递的参数的值减一。
如果有一个显式的
开始
,迭代从它的值开始。如果有一个
步骤
,它继续,同时
返回值
小于
停止
价值。
for i in range(1, 7, 2):
print(i, end=' ')
Out:
1 3 5 # there's no 7!
详细描述
内置is
这里
..。
https://stackoverflow.com/questions/53621696
复制相似问题