我想访问对象,即array[i],以及interator count,i。
这就是我正在尝试的:
for i, pinName in allPorts[startIndex:endIndex]:
#do stuff
我得到了进一步的错误,只是想知道它是否是代码的这一部分。
这里是 python 的新手。干杯。
我猜你宁愿寻找:
for i, pinName in enumerate(allPorts[startIndex:endIndex]):
...
enumerate()
内置函数接受任何列表(元组,可迭代,...)并产生(索引,项目)的元组,索引从 0 开始。
考虑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
请注意指定为第二个参数的起始索引值enumerate()
,否则它将始终以 index 开头0
(忽略您的startIndex
,除非您总是想以 开头0
)。
我怀疑这是你的想法:
for i, pinName in enumerate(allPorts[startIndex:endIndex]):
#do stuff
但是,我认为这不会达到您的预期。 allPorts[startIndex:endIndex]
将“切片”列表并创建一个新列表,因此allPorts[i]
如果startIndex != 0
如果您需要 i
成为 original 中的索引allPorts
,那么我认为这是您必须要做的:
i = startIndex
while i < endIndex:
pinName = allPorts[i]
#do stuff
i += 1
正如评论中所建议的,这是一种更好的方法:
for i in xrange(startIndex, endIndex):
pinName = allPorts[i]
#do stuff