我想訪問該對象,即數組[i],以及interator計數,即。python - 這是一個有效的循環?
這就是我想:
for i, pinName in allPorts[startIndex:endIndex]:
#do stuff
我得到的錯誤進一步下跌,只是想知道如果它的這部分代碼。
python的新功能在這裏。乾杯。
我想訪問該對象,即數組[i],以及interator計數,即。python - 這是一個有效的循環?
這就是我想:
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()
第二個參數的索引值否則將始終與指數0
(忽略你的startIndex
,除非你總是想0
開始)開始。
我懷疑這是你在想什麼:
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
'i ++'不是有效的python。 –
@JoelCornett對不起,腦屁。現在修復。 – Izkata
它總是發生在我身上:P對我而言,在Ruby和Python之間切換時是最糟糕的:) –
什麼是錯誤!並向我們展示您的代碼... –