我想访问对象,即array [i],以及interator计数,i。
这就是我正在尝试的:
for i, pinName in allPorts[startIndex:endIndex]:
#do stuff
我进一步发现错误,只是想知道这是否是代码的这一部分。
这里是python的新手。欢呼声。
答案 0 :(得分:7)
我想你宁愿寻找:
for i, pinName in enumerate(allPorts[startIndex:endIndex]):
...
enumerate()
内置任意列表(元组,可迭代,...)并产生(索引,项目)元组,索引从0开始。
答案 1 :(得分:4)
考虑enumerate(),它返回一个带有索引值和元素的元组:
startIndex = 2
endIndex = 4
for i, pinName in enumerate(allPorts[startIndex:endIndex], startIndex):
print('index = {} element = {}'.format(i, pinName))
的产率:
index = 2 element = 66
index = 3 element = 99
请注意在<{1}}中指定为第二个参数的 起始索引值 ,否则它将始终以索引enumerate()
开头(忽略您的{{1}除非你总是想以0
开头。)
答案 2 :(得分:1)
我怀疑这是你在想的:
for i, pinName in enumerate(allPorts[startIndex:endIndex]):
#do stuff
但是,我认为这不会达到您的预期。 allPorts[startIndex:endIndex]
将“切片”列表并创建一个新列表,因此如果allPorts[i]
startIndex != 0
仍会提供错误的索引
如果您需要 i
作为原始allPorts
中的索引,那么我认为这是您必须要做的事情:
<击> 撞击>
<击>i = startIndex
while i < endIndex:
pinName = allPorts[i]
#do stuff
i += 1
击> <击> 撞击>
正如评论中所建议的,这是一个更好的方法:
for i in xrange(startIndex, endIndex):
pinName = allPorts[i]
#do stuff